متغیرهای از پیش تعریف شده
PHP Manual

$_SERVER

$HTTP_SERVER_VARS [نامطلوب]

$_SERVER -- $HTTP_SERVER_VARS [نامطلوب]اطلاعات محیط اجرا و سرور

Description

$_SERVER یک آرایه شامل اطلاعات مانند سرآیند مسیرها و محل اسکریپت است. ورودی این آرایه در وب‌سرور ساخته می‌شود. تضمینی برای ساخته شدن این آرایه در هر وب‌سرور وجود ندارد . سرورها ممکن است بعضی از آنها را حذف نمایند یا چیزهای دیگری فراهم نمایند. بیشتر این متغیرهای در » ویژگی‌هایCGI 1.1 فهرست شده‌اند پس می‌توانید آنها را بیابید.

$HTTP_SERVER_VARS همان اطلاعات را داشته اما یک superglobal نیست. (توجه کنید که $HTTP_SERVER_VARS و $_SERVER متغیرهای متفاوتی هستند و PHP با آنها بصور متفاوت رفتار می‌کند)

Indices

شما ممکن است اجزای زیر را در $_SERVER بیابید یا نه. توجه کنید اجزای کمی یا حداقل تعدادی از آنها مو جود خواهند بود (یا معنی خواهند داشت) اگر PHP را از طریق خط فرمان اجرا می‌نمایید.

'PHP_SELF'
نام فایل فعلی در حال اجرا در اسکریپت نسبت به مکان نسبی ریشه. برای نمونه $_SERVER['PHP_SELF'] در یک اسکریپت آدرس http://example.com/test.php/foo.bar ٬ /test.php/foo.bar خواهد بود. ثابت __FILE__ مسیر کامل و نام فایل فعلی را خواهد داشت (به عنوان نمونه اضافه شده). اگر PHP به عنوان پردازنده خط فرمان مورد استفاده قرار گیرد این متغیر نام اسکریپت را از زمان PHP 4.3.0 خواهد داشت. پیش از آن در دسترس نبوده است.
'$argv'
آرایه آرگومان‌ٰهای داده شده به این اسکریپت. وقتی اسکریپت از خط فرمان اجرا شود دسترسی همانند C به پارامترهای خط فرمان خواهد داد. وقتی از طریق متد GET فراخوانی شود این متغیر رشته درخواست را خواهد داشت.
'$argc'
تعداد پارامترهای ارسالی به اسکریپت را دارد (اگر در خط فرمان اجرا شود).
'GATEWAY_INTERFACE'
چه نسخه‌ای از ویژگی‌های CGIدر سرور مورد استفاده است; برای نمونه 'CGI/1.1'.
'SERVER_ADDR'
آدرس IP اجرا کننده اسکریپت فعلی.
'SERVER_NAME'
نام میزبان سرور در اسکریپت فعلی. اگر اسکریپت در یک میزبان مجازی اجرا می‌شود مقدار مشخص شده توسط این میزبان در آن خواهد بود.
'SERVER_SOFTWARE'
رشته تشخیص سرور داده شده در سرآیند درخواست‌ها.
'SERVER_PROTOCOL'
نام و نسخه پروتکل از طریق درخواست صفحه.برای نمونه 'HTTP/1.0';
'REQUEST_METHOD'
کدام شیوه درخواست برای دسترسی به صفحه مورد استفاده قرار گرفته سات. برای نمونه 'GET'٬ 'HEAD'٬ 'POST'٬ 'PUT'.

Note:

اسکریپت PHP پس از فرستادن سرآیندها پایان خواهد یافت (به معنای تولید خروجی بدون قرار دادن آن در بافر) اگر شیوه درخواست HEAD باشد.

'REQUEST_TIME'
برچسب زمانی شروع درخواست. موجود از زمان PHP 5.1.0.
'QUERY_STRING'
رشته پرس و جو اگر از طریق صفحه به آنها دسترسی درخواست شده باشد.
'DOCUMENT_ROOT'
ریشه سند در اسکریپت فعلی در حال اجرا که در فایل تنظیمات سرور تنظیم شده باشد.
'HTTP_ACCEPT'
محتویات سرآیندAccept: از درخواست فعلی اگر وجود داشته باشد.
'HTTP_ACCEPT_CHARSET'
محتویات سرآیند Accept-Charset: از درخواست فعلی اگر وجود داشته باشد. نمونه: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
محتویات سرآیند Accept-Encoding: از درخواست فعلی اگر وجود داشته باشد. نمونه: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
محتویات سرآیند Accept-Language: از درخواست فعلی اگر وجود داشته باشد. نمونه: 'en'.
'HTTP_CONNECTION'
محتویات سرآیند Connection: از درخواست فعلی اگر وجود داشته باشد. نمونه: 'Keep-Alive'.
'HTTP_HOST'
محتویات سرآیند Host: از درخواست فعلی اگر وجود داشته باشد.
'HTTP_REFERER'
آدرس صفحه (اگر باشد) که توسط عامل کاربر در صفحه فعلی به آن اشاره می‌شود. تمام عوامل کاربر نمی‌توانند این مقدار را تنظیم نمایند و بعضی از آنها توانایی تغییر HTTP_REFERER را به عنوان یک ویژگی دارا هستند. واقعا نمی‌توان به آن اعتماد کرد.
'HTTP_USER_AGENT'
محتویات سرآیند User-Agent: از درخواست فعلی اگر وجود داشته باشد. این رشته نمایش‌دهنده عامل کاربر در حال دسترسی به صفحه فعلی است. یک نمونه معمول: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). در میان باقی چیزها شما می‌توانید از این مقدار به همراه get_browser() برای چسباندن خروجی صفحه خود به توانایی عامل کاربر است. agent.
'HTTPS'
اگر صفحه از طریق HTTP مورد دسترسی واقع شده باشد این مقدار غیر خالی خواهد بود.

Note: توجه کنید هنگام استفاده از ISAPI به همراه IIS مقدار برابر با off خواهد بود اگر درخواست از طریق پروتکل HTTPS نباشد.

'REMOTE_ADDR'
آدرس IP که کاربر صفحه را با آن می‌بیند.
'REMOTE_HOST'
نام میزبان کاربر که از آن صفحه را می‌بیند. جستجوی بازگشتی dns براساس REMOTE_ADDR کاربر است.

Note: وب سرور شما باید بگونه‌ای تنظیم شده باشد که این متغیر را بسازد. برای نمونه در آپاچی شما نیاز به HostnameLookups On در httpd.conf دارید تا وجود داشته باشد. همچنین gethostbyaddr() را ببینید.

'REMOTE_PORT'
پورت مورد استفاده در ماشین کاربر برای ارتباط با وب سرور.
'SCRIPT_FILENAME'

مسیر مطلق اسکریپت فعلی در حال اجرا.

Note:

اگر اسکریپت با استفاده از CLI دیده می‌شود مسیر نسبی مانند file.php یا ../file.php٬ $_SERVER['SCRIPT_FILENAME'] مسیر نسبی تعیین شده توسط کاربر را نشان خواهد داد.

'SERVER_ADMIN'
مقدار داده شده به شبه جملهSERVER_ADMIN (برای Apache) در فایل تنظیمات وب سرور. اگر اسکریپت بر میزبان مجازی عمل نماید این مقدار توسط میزبان مجازی تعریف خواهد شد.
'SERVER_PORT'
پورت استفاده شده در ماشین سرور توسط وب سرور برای ارتباطات. تنظیم پیش‌فرض '80' خواهد بود; استفاده از SSL برای نمونه این مقدار را به هر پورت امن HTTP تغییر می‌دهد.
'SERVER_SIGNATURE'
رشته دارای نسخه سرور و نام میزبان مجازی که در صفحات ساخته شده توسط سرور در صورت فعال بودن اضافه می‌گردد.
'PATH_TRANSLATED'
سیستم فایل- (نه ریشه سند) براساس مسیر اسکریپت فعلی پس از انجام هر گونه تطبیق مجازی به حقیقی توسط سرور.

Note: از زمان PHP 4.3.2 PATH_TRANSLATED دیگر در آپاچی ۲ SAPI برخلاف موقعیت آپاچی ۱ روشن نیست. در آپاچی ۱ همان مقدار متغیر سرور SCRIPT_FILENAME علارغم محبوب نبودن در آپاچی است. این تغییر برای پیروی از CGI است PATH_TRANSLATED تنها باید در صورتی موجود باشد که PATH_INFO تعریف شده باشد. کاربران Apache 2 از AcceptPathInfo = On در httpd.conf برای تعریف PATH_INFO استفاده نمی‌کند.

'SCRIPT_NAME'
محتوی مسیر اسکریپت فعلی است. این برای ضفحاتی سودمند است که باید بر خود اشاره نمایند. ثابت __FILE__ مسیر کامل و نام فایل فعلی را دارد (به عنوان نمونه اضافه شده).
'REQUEST_URI'
URI برای دسترسی به این صفحه; برای نمونه '/index.html'.
'PHP_AUTH_DIGEST'
هنگام اجرا تحت آپاچی به عنوان ماجول تجزیه داده‌های تایید هویت HTTP این متغیر برابر با سرآیند 'Authorization' فرستاده شده توسط مشتری است (که شما باید سپس از آن استفاده نمایید تا تایید صحت آن را انجام دهید).
'PHP_AUTH_USER'
هنگام اجرا تحت Apache یا IIS (ISAPI بر PHP 5) به عنوان ماجول تایید هویت HTTP این متغیر نشان‌دهنده کلمه کاربری فراهم شده است.
'PHP_AUTH_PW'
هنگام اجرا تحت Apache یا IIS (ISAPI بر PHP 5) به عنوان ماجول تایید هویتas module doing HTTP نشان‌دهنده کلمه رمز فراهم شده کاربر است.
'AUTH_TYPE'
در حال اجرا تحت ماجول آپاچی٬ تایید هویت HTTP این متغیر برای نشان دادن نوع تایید هویت بکار می‌رود.
'PATH_INFO'
شامل اطلاعات فراهم شده مسیر توسط کلاینت به دنیال نام فایل واقعی اسکریپت و پیش از رشته پرس و جو در صورت وجود است. به عنوان مثال اسکریپت فعلی از طریق URL http://www.example.com/php/path_info.php/some/stuff?foo=bar مورد دسترسی قرار گرفته است سپس $_SERVER['PATH_INFO'] شامل /some/stuff خواهد بود.
'ORIG_PATH_INFO'
نسخه اصلی 'PATH_INFO' پیش از پردازش توسط PHP.

Changelog

Version Description
4.1.0 معرفی $_SERVER موجب نامطلوب شدن $HTTP_SERVER_VARS شد.

Examples

Example #1 نمونه $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

The above example will output something similar to:

www.example.com

Notes

Note:

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

See Also


متغیرهای از پیش تعریف شده
PHP Manual