1. $_SERVER 是一个包含诸如头部(headers)、路径(paths)和脚本位置(script locations)的数组。数组的实体由 web 服务器创建。不能保证所有的服务器都能产生所有的信息
<?php
echo "HTTP_USER_AGENT: ".$_SERVER[HTTP_USER_AGENT]."<br>"; //当前请求的 User_Agent: 头部的内容。 Mozilla/4.0 (。。。
echo "PHP_SELF: ".$_SERVER[PHP_SELF]."<br>"; //当前正在执行脚本的文件名路径,相对document root。 /test/test.php
echo "SERVER_NAME: ".$_SERVER[SERVER_NAME]."<br>"; //主机名,DNS别名,或则IP地址。localhost
echo "SERVER_SOFTWARE: ".$_SERVER[SERVER_SOFTWARE]."<br>"; //服务器标识的字串。Apache/2.2.4 (Win32)。。。
echo "QUERY_STRING: ".$_SERVER[QUERY_STRING]."<br>"; //查询(query)的字符串。haha=33
echo "DOCUMENT_ROOT: ".$_SERVER[DOCUMENT_ROOT]."<br>"; //当前运行脚本所在的文档根目录。 C:/xampp/htdocs
echo "HTTP_HOST: ".$_SERVER[HTTP_HOST]."<br>"; //当前请求的 Host: 头部的内容。localhost
echo "REMOTE_ADDR: ".$_SERVER[REMOTE_ADDR]."<br>"; //请求本页的机器IP地址。127.0.0.1
echo "REMOTE_HOST: ".$_SERVER[REMOTE_HOST]."<br>"; //请求本页的机器主机名,如果机器没有DNS记录,则变量为空
echo "HTTP_REFERER: ".$_SERVER[HTTP_REFERER]."<br>"; //浏览器来到当前页面的上一个页面,此处为空
echo "SCRIPT_NAME: ".$_SERVER[SCRIPT_NAME]."<br>"; //包含当前脚本的路径。这在页面需要指向自己时非常有用。 test/test.php
echo "SCRIPT_FILENAME: ".$_SERVER[SCRIPT_FILENAME]."<br>"; //当前执行脚本的绝对路径名。C:/xampp/htdocs/test/test.php
?>
2.SCRIPT_NAME 与 PHP_SELF 区别
转自: http://www.sonyfeel.com/doc.php?action=view&docid=9
通常在本機測試 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什麼不同,因為大部分的PHP不是以CGI模式運行的。
但 DreamHost 上的 PHP 是以 CGI 方式運行,二者就有明顯不同的差異。
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF']; // (/admin/test.php)