পরিচিতি
$_SERVER হলো একটি সুপারগ্লোবাল যা HTTP হেডার, পথ এবং স্ক্রিপ্ট লোকেশন ইত্যাদি তথ্য ধারণ করে। সার্ভার এবং এক্সিকিউশন এনভায়রনমেন্ট সম্পর্কিত সব তথ্য এই অ্যাসোসিয়েটিভ অ্যারেতে উপলব্ধ। এর অধিকাংশ এন্ট্রি ওয়েব সার্ভার দ্বারা পপুলেট করা হয়।
PHP 5.4.0-এর পূর্বের ভার্সনে $HTTP_SERVER_VARS একই তথ্য ধারণ করতো কিন্তু এখন রিমুভ করা হয়েছে। এই অ্যারের কিছু প্রমিনেন্ট মেম্বার নিচে—
PHP_SELF — বর্তমান এক্সিকিউট হচ্ছে স্ক্রিপ্টের ফাইলনেম সংরক্ষণ করে। উদাহরণস্বরূপ, লোকাল সার্ভারের ডকুমেন্ট রুটের test ফোল্ডারে একটি স্ক্রিপ্ট তার পথ নিচের মতো রিটার্ন করে—
উদাহরণ
<?php echo $_SERVER['PHP_SELF']; ?>
এটি ব্রাউজারে https://localhost/test/testscript.php URL-এ নিচের আউটপুট দেবে—
/test/testscript.php
SERVER_ADDR — বর্তমান স্ক্রিপ্ট এক্সিকিউট হচ্ছে সার্ভারের IP অ্যাড্রেস রিটার্ন করে।
SERVER_NAME — বর্তমান স্ক্রিপ্ট এক্সিকিউট হচ্ছে সার্ভার হোস্টের নাম। লোকালি রান হয় থাকলে localhost রিটার্ন করে।
QUERY_STRING — কোয়েরি স্ট্রিং হলো & সিম্বল দিয়ে সেপারেটেড key=value পেয়ারের স্ট্রিং যা URL-এ ? সিম্বলের পরে অ্যাপেন্ড করা থাকে। উদাহরণস্বরূপ, https://localhost/testscript?name=xyz&age=20 URL ট্রেইলিং কোয়েরি স্ট্রিং রিটার্ন করে।
REQUEST_METHOD — URL এক্সেস করার জন্য ব্যবহৃত HTTP রিকোয়েস্ট মেথড, যেমন GET, POST, PUT, DELETE। উপরের কোয়েরি স্ট্রিং উদাহরণে, ? সিম্বলসহ কোয়েরি স্ট্রিং যুক্ত URL GET মেথড দিয়ে রিকোয়েস্ট করে।
DOCUMENT_ROOT — সার্ভারে কনফিগারড ডকুমেন্ট রুট ডিরেক্টরির নাম রিটার্ন করে। XAMPP আপ্যাচি সার্ভারে এটি htdocs রিটার্ন করে—
C:/xampp/htdocs
HTTP_USER_AGENT — পেজ এক্সেস করা ব্রাউজার (ইউজার এজেন্ট) নির্দেশকারী একটি স্ট্রিং—
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
REMOTE_ADDR — কারেন্ট পেজ ভিউ করার মেশিনের IP অ্যাড্রেস।
SERVER_PORT — ওয়েব সার্ভার যেটি পোর্টে ইনকামিং রিকোয়েস্ট লিসেন করে। ডিফল্ট ৮০।
XAMPP সার্ভারের ডকুমেন্ট রুট থেকে ইনভোক করা নিচের স্ক্রিপ্ট সার্ভার ভেরিয়েবলগুলো লিস্ট করে—
উদাহরণ
<?php foreach ($_SERVER as $k=>$v) echo $k . "=>" . $v . "<br>"; ?>
সকল সার্ভার ভেরিয়েবলের তালিকা—
MIBDIRS=>C:/xampp/php/extras/mibs MYSQL_HOME=>\xampp\mysql\bin OPENSSL_CONF=>C:/xampp/apache/bin/openssl.cnf PHP_PEAR_SYSCONF_DIR=>\xampp\php PHPRC=>\xampp\php TMP=>\xampp\tmp HTTP_HOST=>localhost HTTP_CONNECTION=>keep-alive HTTP_CACHE_CONTROL=>max-age=0 HTTP_DNT=>1 HTTP_UPGRADE_INSECURE_REQUESTS=>1 HTTP_USER_AGENT=>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 HTTP_ACCEPT=>text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 HTTP_SEC_FETCH_SITE=>none HTTP_SEC_FETCH_MODE=>navigate HTTP_SEC_FETCH_USER=>?1 HTTP_SEC_FETCH_DEST=>document HTTP_ACCEPT_ENCODING=>gzip, deflate, br HTTP_ACCEPT_LANGUAGE=>en-US,en;q=0.9,mr;q=0.8 PATH=>C:\python37\Scripts\;C:\python37\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\python37\Scripts\;C:\python37\;C:\Users\User\AppData\Local\Microsoft\WindowsApps;C:\Users\User\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\;C:\MicrosoftVSCode\bin SystemRoot=>C:\Windows COMSPEC=>C:\Windows\system32\cmd.exe PATHEXT=>.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW WINDIR=>C:\Windows SERVER_SIGNATURE=> Apache/2.4.41 (Win64) OpenSSL/1.0.2s PHP/7.1.32 Server at localhost Port 80 SERVER_SOFTWARE=>Apache/2.4.41 (Win64) OpenSSL/1.0.2s PHP/7.1.32 SERVER_NAME=>localhost SERVER_ADDR=>::1 SERVER_PORT=>80 REMOTE_ADDR=>::1 DOCUMENT_ROOT=>C:/xampp/htdocs REQUEST_SCHEME=>http CONTEXT_PREFIX=> CONTEXT_DOCUMENT_ROOT=>C:/xampp/htdocs SERVER_ADMIN=>postmaster@localhost SCRIPT_FILENAME=>C:/xampp/htdocs/testscript.php REMOTE_PORT=>49475 GATEWAY_INTERFACE=>CGI/1.1 SERVER_PROTOCOL=>HTTP/1.1 REQUEST_METHOD=>GET QUERY_STRING=> REQUEST_URI=>/testscript.php SCRIPT_NAME=>/testscript.php PHP_SELF=>/testscript.php REQUEST_TIME_FLOAT=>1599118525.327 REQUEST_TIME=>1599118525