🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
URL相关 == SCRIPT_NAME:主要到.后缀(只保留到.php)就结束 PHP_SELF:取问号之前(.php/abc?abc则到/abc结束)----从DocumentRoot(根目录)到本文件的路径 QUERY_STRING:取问号之后(.php/abc?abc则为abc) REQUEST_URI:各种带 PATH_INFO:保留.php后到问号之前的/abc/bcd格式的字符串 HTTP_HOST:域名(只含域名 不含http等杂物) DOCUMENT_ROOT:即apache配置文件中指定的DocumentRoot (E:\www\) SCRIPT_NAME:从DocumentRoot(根目录)到本文件的路径+当前文件名(\test\test.php) PHP_SELF:从DocumentRoot(根目录)到本文件的路径+当前文件名(\test\test.php)//不常用 __FILE__:从磁盘开始到本文件的绝对路径(E:\www\test\test.php) <?php //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br />"; //获取网页地址 echo $_SERVER['PHP_SELF']."<br />"; //获取网址参数 echo $_SERVER["QUERY_STRING"]."<br />"; //获取用户代理 echo $_SERVER['HTTP_REFERER']."<br />"; //获取完整的url echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; //包含端口号的完整url echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; //只取路径 $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; echo dirname($url); ?> 源文件: test.php <?php echo "The SCRIPT_FILENAME: "; echo $_SERVER['SCRIPT_FILENAME']." "; echo "The SCRIPT_NAME: "; echo $_SERVER['SCRIPT_NAME']." "; echo "The PHP_SELF: "; echo $_SERVER['PHP_SELF']." "; echo 'The __FILE__ : '; echo __FILE__." "; ?> test2.php: <?php include("./test.php"); echo "The end"; ?> 结果: 1、直接执行http://127.0.0.1/test.php The SCRIPT_FILENAME: /w/c/l/test.php The SCRIPT_NAME: /test.php The PHP_SELF: /test.php The __FILE__ : /w/c/l/test.php 2、执行http://127.0.0.1/test2.php The SCRIPT_FILENAME: /w/c/l/test2.php The SCRIPT_NAME: /test2.php The PHP_SELF: /test2.php The __FILE__ : /w/c/l/test.php The end 结论:__FILE__永远是自己所在的文件,其他的都是为别人做嫁衣!    另外,PHP_SELF将会得到pathinfo的部分。如test.php/abc=sd 还有一个'REQUEST_URI',将包含get来的参数,比如test.php?abc=1 ----- [php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别](http://it.oyksoft.com/post/3158/)