ভূমিকা
$_ENV PHP-এ আরেকটি সুপারগ্লোবাল অ্যাসোসিয়েটিভ অ্যারে। এটি করেন্ট স্ক্রিপ্টে উপলব্ধ এনভায়রনমেন্ট ভেরিয়েবলগুলো সংরক্ষণ করে। $HTTP_ENV_VARSও একই ইনফো ধারণ করে, কিন্তু এটি সুপারগ্লোবাল নয় এবং এখন ডিপ্রিকেটেড।
এনভায়রনমেন্ট ভেরিয়েবলগুলো গ্লোবাল নেমস্পেসে ইম্পোর্ট করা হয়। অধিকাংশ এই ভেরিয়েবলগুলো PHP পারসার যা চলছে সেই শেল দ্বারা প্রদান করা হয়। তাই এনভায়রনমেন্ট ভেরিয়েবলের লিস্ট ভিন্ন প্ল্যাটফর্মে ভিন্ন হতে পারে।
এই অ্যারেতে 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() দিয়ে পরিবর্তন করতে পারবে না।
putenv
উদাহরণ
<?php putenv("PHP_TEMPUSER=GUEST"); echo "Temp user: " . getenv("PHP_TEMPUSER"); ?>আউটপুট
ব্রাউজারে নিচের ফলাফল দেখাবে—
Temp user: GUEST