কম্পিউটার টিউটোরিয়াল

PHP $_SERVER সুপারগ্লোবাল


পরিচিতি

$_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

  1. PHP-এ ফাইল আপলোড করে অন্য PHP সার্ভারে পাঠানো

  2. PHP-তে সার্ভার IP ঠিকানা চিহ্নিত করা

  3. PHP-এ ftp_get() ফাংশন

  4. PHP ব্যবহার করে ক্লাউডে SAP HANA সার্ভারে সংযোগ