แนะนำตัว
$_ENV เป็นอาเรย์ที่เชื่อมโยงที่ยอดเยี่ยมอีกตัวหนึ่งใน PHP มันเก็บตัวแปรสภาพแวดล้อมที่มีอยู่ในสคริปต์ปัจจุบัน $HTTP_ENV_VARS มีข้อมูลเดียวกันแต่ไม่ใช่ superglobal และตอนนี้เลิกใช้แล้ว
ตัวแปรสภาพแวดล้อมถูกนำเข้าไปยังเนมสเปซส่วนกลาง ตัวแปรเหล่านี้ส่วนใหญ่มาจากเชลล์ซึ่ง PHP parser ทำงานอยู่ ดังนั้น รายการตัวแปรสภาพแวดล้อมอาจแตกต่างกันไปตามแพลตฟอร์มต่างๆ
อาร์เรย์นี้ยังรวมถึงตัวแปร CGI ในกรณีที่ PHP ทำงานเป็นโมดูลเซิร์ฟเวอร์หรือตัวประมวลผล CGI
ไลบรารี PHP มี getenv() ฟังก์ชันดึงรายการตัวแปรสภาพแวดล้อมทั้งหมดหรือค่าของตัวแปรสภาพแวดล้อมเฉพาะ
getenv
สคริปต์ต่อไปนี้แสดงค่าของตัวแปรสภาพแวดล้อมที่มีอยู่ทั้งหมด
<?php $arr=getenv(); foreach ($arr as $key=>$val) echo "$key=>$val "; ?>
ในการรับค่าของตัวแปรเฉพาะ ให้ใช้ชื่อนั้นเป็นอาร์กิวเมนต์สำหรับฟังก์ชัน getenv()
ตัวอย่าง
<?php echo "Path: " . getenv("PATH"); ?>
ผลลัพธ์
เบราว์เซอร์จะแสดงผลลัพธ์คล้ายกับการติดตาม
Path: /usr/local/bin/factor:/root/.sdkman/candidates/kotlin/current/bin:/usr/GNUstep/System/Tools:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/scriba/bin:/usr/local/smlnj/bin:/usr/local/bin/std:/usr/local/bin/extra:/usr/local/fantom/bin:/usr/local/dart/bin:/usr/libexec/sdcc:/usr/local/icon-v950/bin:/usr/local/mozart/bin:/opt/Pawn/bin:/opt/pash/Source/PashConsole/bin/Debug/:.:/root/.sdkman/candidates/kotlin/current/bin:/usr/bin:/sbin:/bin
PHP ยังมีputenv() ฟังก์ชันเพื่อสร้างตัวแปรสภาพแวดล้อมใหม่ ตัวแปรสภาพแวดล้อมจะอยู่ในช่วงเวลาของคำขอปัจจุบันเท่านั้น
ควรหลีกเลี่ยงการเปลี่ยนแปลงค่าของตัวแปรสภาพแวดล้อมบางอย่าง โดยค่าเริ่มต้น ผู้ใช้จะสามารถตั้งค่าตัวแปรสภาพแวดล้อมที่ขึ้นต้นด้วย PHP_ เท่านั้น (เช่น PHP_FOO=BAR)
safe_mode_protected_env_vars คำสั่งใน php.ini มีรายการตัวแปรสภาพแวดล้อมที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งผู้ใช้ปลายทางจะไม่สามารถเปลี่ยนแปลงได้โดยใช้ putenv()
ปูเตนฟ
ตัวอย่าง
<?php putenv("PHP_TEMPUSER=GUEST"); echo "Temp user: " . getenv("PHP_TEMPUSER"); ?>
ผลลัพธ์
เบราว์เซอร์จะแสดงผลดังต่อไปนี้
Temp user: GUEST