1. 云栖社区>
  2. PHP教程>
  3. 正文

php应用路径变量问题总结

作者:用户 来源:互联网 时间:2017-12-01 19:25:21

服务器根目录

php应用路径变量问题总结 - 摘要: 本文讲的是php应用路径变量问题总结, 实际效果测试,不考虑原理。 本地服务器,域名http://d.com,根路径D:/phpnow/vhosts/d.com.yii,相对根目录拥有文件/x.php代码里requeir_once /a/a.php,而/a/a.php又requ

实际效果测试,不考虑原理。

本地服务器,域名http://d.com,根路径D:/phpnow/vhosts/d.com.yii,相对根目录拥有文件/x.php代码里requeir_once /a/a.php,而/a/a.php又requeir_once /a/b/b.php

直接访问http://d.com/x.php/x/y/z.html?a=b&c=d的结果

/x.php


$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息

$_SERVER["PHP_SELF"]:【/x.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/x.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行文件的绝对路径
__FILE__ :【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行代码的绝对路径

$_SERVER["REQUEST_URI"]:【/x.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。

$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义

basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的文件名
basename($_SERVER["SCRIPT_NAME"]):【x.php】//实际执行文件文件名
basename($_SERVER["SCRIPT_FILENAME"]):【x.php】//实际执行文件文件名
basename(__FILE__):【x.php】//实际执行代码文件名

dirname($_SERVER["PHP_SELF"]):【/x.php/x/y】//请求执行文件的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【/】//实际执行文件所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii】//实际执行文件所在目录
dirname(__FILE__):【D:/phpnow/vhosts/d.com.yii】//实际执行代码所在目录

require_once /a/a.php


$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息

$_SERVER["PHP_SELF"]:【/x.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/x.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行文件的绝对路径
__FILE__ :【D:/phpnow/vhosts/d.com.yii/a/a.php】//实际执行代码的绝对路径

$_SERVER["REQUEST_URI"]:【/x.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。

$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义

basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的文件名
basename($_SERVER["SCRIPT_NAME"]):【x.php】//实际执行文件文件名
basename($_SERVER["SCRIPT_FILENAME"]):【x.php】//实际执行文件文件名
basename(__FILE__):【a.php】//实际执行代码文件名

dirname($_SERVER["PHP_SELF"]):【/x.php/x/y】//请求执行文件的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【/】//实际执行文件所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii】//实际执行文件所在目录
dirname(__FILE__):【D:/phpnow/vhosts/d.com.yii/a】//实际执行代码所在目录

require_once /a/b/b.php


$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息

$_SERVER["PHP_SELF"]:【/x.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/x.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行文件的绝对路径
__FILE__ :【D:/phpnow/vhosts/d.com.yii/a/b/b.php】//实际执行代码的绝对路径

$_SERVER["REQUEST_URI"]:【/x.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。

$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义

basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的文件名
basename($_SERVER["SCRIPT_NAME"]):【x.php】//实际执行文件文件名
basename($_SERVER["SCRIPT_FILENAME"]):【x.php】//实际执行文件文件名
basename(__FILE__):【b.php】//实际执行代码文件名

dirname($_SERVER["PHP_SELF"]):【/x.php/x/y】//请求执行文件的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【/】//实际执行文件所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii】//实际执行文件所在目录
dirname(__FILE__):【D:/phpnow/vhosts/d.com.yii/a/b】//实际执行代码所在目录

直接访问http://d.com/a/a.php/x/y/z.html?a=b&c=d的结果 

/a/a.php


$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息

$_SERVER["PHP_SELF"]:【/a/a.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/a/a.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/a/a.php】//实际执行文件的绝对路径
__FILE__ :【D:/phpnow/vhosts/d.com.yii/a/a.php】//实际执行代码的绝对路径

$_SERVER["REQUEST_URI"]:【/a/a.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。

$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义

basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的文件名
basename($_SERVER["SCRIPT_NAME"]):【a.php】//实际执行文件文件名
basename($_SERVER["SCRIPT_FILENAME"]):【a.php】//实际执行文件文件名
basename(__FILE__):【a.php】//实际执行代码文件名

dirname($_SERVER["PHP_SELF"]):【/a/a.php/x/y】//请求执行文件的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【/a】//实际执行文件所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii/a】//实际执行文件所在目录
dirname(__FILE__):【D:/phpnow/vhosts/d.com.yii/a】//实际执行代码所在目录

require_once /a/b/b.php


$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息

$_SERVER["PHP_SELF"]:【/a/a.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/a/a.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/a/a.php】//实际执行文件的绝对路径
__FILE__ :【D:/phpnow/vhosts/d.com.yii/a/b/b.php】//实际执行代码的绝对路径

$_SERVER["REQUEST_URI"]:【/a/a.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。

$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义

basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的文件名
basename($_SERVER["SCRIPT_NAME"]):【a.php】//实际执行文件文件名
basename($_SERVER["SCRIPT_FILENAME"]):【a.php】//实际执行文件文件名
basename(__FILE__):【b.php】//实际执行代码文件名

dirname($_SERVER["PHP_SELF"]):【/a/a.php/x/y】//请求执行文件的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【/a】//实际执行文件所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii/a】//实际执行文件所在目录
dirname(__FILE__):【D:/phpnow/vhosts/d.com.yii/a/b】//实际执行代码所在目录

源码

/x.php

<?phpecho "<br/>/x.php<hr/>";echo '$_SERVER["HTTP_HOST"]:【',$_SERVER['HTTP_HOST'],"】//当前请求的 Host:即域名信信息","<br/>";echo '<br/>';echo '$_SERVER["PHP_SELF"]:【<font color="#EE00EE">',$_SERVER['PHP_SELF'],"</font>】//<font color='green'>请求执行文件的</font><font color='red'>相对</font><font color='blue'>地址</font>","<br/>";echo '$_SERVER["SCRIPT_NAME"]:【',$_SERVER['SCRIPT_NAME'],"】//<font color='green'>实际执行文件</font><font color='red'>相对</font><font color='blue'>地址</font>","<br/>";echo '$_SERVER["SCRIPT_FILENAME"]:【',$_SERVER['SCRIPT_FILENAME'],"】//<font color='green'>实际执行文件的</font><font color='red'>绝对</font><font color='blue'>路径</font>。","<br/>";echo '__FILE__ :【<font color="#EE00EE">',__FILE__ ,"</font>】//<font color='green'>实际执行代码的</font><font color='red'>绝对</font><font color='blue'>路径</font>。","<br/>";echo '<br/>';echo '$_SERVER["REQUEST_URI"]:【',$_SERVER['REQUEST_URI'],"】//url请求中包括/和之后的所有内容。","<br/>";echo '$_SERVER["QUERY_STRING"]:【',$_SERVER['QUERY_STRING'],"】//url请求中?之后的内容。","<br/>";echo '<br/>';echo '$_SERVER["DOCUMENT_ROOT"]:【',$_SERVER['DOCUMENT_ROOT'],"】//文档根目录。在服务器配置文件中定义","<br/>";echo "<br/>";echo 'basename($_SERVER["PHP_SELF"]):【<font color="#EE00EE">',basename($_SERVER['PHP_SELF']),"</font>】//<font color='green'>请求执行文件的</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename($_SERVER["SCRIPT_NAME"]):【',basename($_SERVER['SCRIPT_NAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename($_SERVER["SCRIPT_FILENAME"]):【',basename($_SERVER['SCRIPT_FILENAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename(__FILE__):【<font color="#EE00EE">',basename(__FILE__),"</font>】//<font color='green'>实际执行代码</font>的<font color='blue'>文件名</font>","<br/>";//echo 'basename($_SERVER["ORIG_SCRIPT_NAME"]):【',basename($_SERVER['ORIG_SCRIPT_NAME']),"】//如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe 如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php","<br/>";echo "<br/>";echo 'dirname($_SERVER["PHP_SELF"]):【<font color="#EE00EE">',dirname($_SERVER['PHP_SELF']),"</font>】//<font color='green'>请求执行文件的</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname($_SERVER["SCRIPT_NAME"]):【',dirname($_SERVER['SCRIPT_NAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname($_SERVER["SCRIPT_FILENAME"]):【',dirname($_SERVER['SCRIPT_FILENAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname(__FILE__):【<font color="#EE00EE">',dirname(__FILE__),"</font>】//<font color='green'>实际执行代码</font>的<font color='blue'>所在目录</font>","<br/>";//echo 'dirname($_SERVER["ORIG_SCRIPT_NAME"]):【',dirname($_SERVER['ORIG_SCRIPT_NAME']),"】//如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe 如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php","<br/>";echo "<br/>";echo "require_once ";require_once("a/a.php");

/a/a.php

<?phpecho "/a/a.php<hr/>";echo '$_SERVER["HTTP_HOST"]:【',$_SERVER['HTTP_HOST'],"】//当前请求的 Host:即域名信信息","<br/>";echo '<br/>';echo '$_SERVER["PHP_SELF"]:【<font color="#EE00EE">',$_SERVER['PHP_SELF'],"</font>】//<font color='green'>请求执行文件的</font><font color='red'>相对</font><font color='blue'>地址</font>","<br/>";echo '$_SERVER["SCRIPT_NAME"]:【',$_SERVER['SCRIPT_NAME'],"】//<font color='green'>实际执行文件</font><font color='red'>相对</font><font color='blue'>地址</font>","<br/>";echo '$_SERVER["SCRIPT_FILENAME"]:【',$_SERVER['SCRIPT_FILENAME'],"】//<font color='green'>实际执行文件的</font><font color='red'>绝对</font><font color='blue'>路径</font>。","<br/>";echo '__FILE__ :【<font color="#EE00EE">',__FILE__ ,"</font>】//<font color='green'>实际执行代码的</font><font color='red'>绝对</font><font color='blue'>路径</font>。","<br/>";echo '<br/>';echo '$_SERVER["REQUEST_URI"]:【',$_SERVER['REQUEST_URI'],"】//url请求中包括/和之后的所有内容。","<br/>";echo '$_SERVER["QUERY_STRING"]:【',$_SERVER['QUERY_STRING'],"】//url请求中?之后的内容。","<br/>";echo '<br/>';echo '$_SERVER["DOCUMENT_ROOT"]:【',$_SERVER['DOCUMENT_ROOT'],"】//文档根目录。在服务器配置文件中定义","<br/>";echo "<br/>";echo 'basename($_SERVER["PHP_SELF"]):【<font color="#EE00EE">',basename($_SERVER['PHP_SELF']),"</font>】//<font color='green'>请求执行文件的</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename($_SERVER["SCRIPT_NAME"]):【',basename($_SERVER['SCRIPT_NAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename($_SERVER["SCRIPT_FILENAME"]):【',basename($_SERVER['SCRIPT_FILENAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename(__FILE__):【<font color="#EE00EE">',basename(__FILE__),"</font>】//<font color='green'>实际执行代码</font>的<font color='blue'>文件名</font>","<br/>";//echo 'basename($_SERVER["ORIG_SCRIPT_NAME"]):【',basename($_SERVER['ORIG_SCRIPT_NAME']),"】//如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe 如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php","<br/>";echo "<br/>";echo 'dirname($_SERVER["PHP_SELF"]):【<font color="#EE00EE">',dirname($_SERVER['PHP_SELF']),"</font>】//<font color='green'>请求执行文件的</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname($_SERVER["SCRIPT_NAME"]):【',dirname($_SERVER['SCRIPT_NAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname($_SERVER["SCRIPT_FILENAME"]):【',dirname($_SERVER['SCRIPT_FILENAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname(__FILE__):【<font color="#EE00EE">',dirname(__FILE__),"</font>】//<font color='green'>实际执行代码</font>的<font color='blue'>所在目录</font>","<br/>";//echo 'dirname($_SERVER["ORIG_SCRIPT_NAME"]):【',dirname($_SERVER['ORIG_SCRIPT_NAME']),"】//如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe 如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php","<br/>";echo "<br/>";echo "require_once ";require_once("b/b.php");

/a/b/php

<?phpecho "/a/b/b.php<hr/>";echo '$_SERVER["HTTP_HOST"]:【',$_SERVER['HTTP_HOST'],"】//当前请求的 Host:即域名信信息","<br/>";echo '<br/>';echo '$_SERVER["PHP_SELF"]:【<font color="#EE00EE">',$_SERVER['PHP_SELF'],"</font>】//<font color='green'>请求执行文件的</font><font color='red'>相对</font><font color='blue'>地址</font>","<br/>";echo '$_SERVER["SCRIPT_NAME"]:【',$_SERVER['SCRIPT_NAME'],"】//<font color='green'>实际执行文件</font><font color='red'>相对</font><font color='blue'>地址</font>","<br/>";echo '$_SERVER["SCRIPT_FILENAME"]:【',$_SERVER['SCRIPT_FILENAME'],"】//<font color='green'>实际执行文件的</font><font color='red'>绝对</font><font color='blue'>路径</font>。","<br/>";echo '__FILE__ :【<font color="#EE00EE">',__FILE__ ,"</font>】//<font color='green'>实际执行代码的</font><font color='red'>绝对</font><font color='blue'>路径</font>。","<br/>";echo '<br/>';echo '$_SERVER["REQUEST_URI"]:【',$_SERVER['REQUEST_URI'],"】//url请求中包括/和之后的所有内容。","<br/>";echo '$_SERVER["QUERY_STRING"]:【',$_SERVER['QUERY_STRING'],"】//url请求中?之后的内容。","<br/>";echo '<br/>';echo '$_SERVER["DOCUMENT_ROOT"]:【',$_SERVER['DOCUMENT_ROOT'],"】//文档根目录。在服务器配置文件中定义","<br/>";echo "<br/>";echo 'basename($_SERVER["PHP_SELF"]):【<font color="#EE00EE">',basename($_SERVER['PHP_SELF']),"</font>】//<font color='green'>请求执行文件的</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename($_SERVER["SCRIPT_NAME"]):【',basename($_SERVER['SCRIPT_NAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename($_SERVER["SCRIPT_FILENAME"]):【',basename($_SERVER['SCRIPT_FILENAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>文件名</font>","<br/>";echo 'basename(__FILE__):【<font color="#EE00EE">',basename(__FILE__),"</font>】//<font color='green'>实际执行代码</font>的<font color='blue'>文件名</font>","<br/>";//echo 'basename($_SERVER["ORIG_SCRIPT_NAME"]):【',basename($_SERVER['ORIG_SCRIPT_NAME']),"】//如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe 如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php","<br/>";echo "<br/>";echo 'dirname($_SERVER["PHP_SELF"]):【<font color="#EE00EE">',dirname($_SERVER['PHP_SELF']),"</font>】//<font color='green'>请求执行文件的</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname($_SERVER["SCRIPT_NAME"]):【',dirname($_SERVER['SCRIPT_NAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname($_SERVER["SCRIPT_FILENAME"]):【',dirname($_SERVER['SCRIPT_FILENAME']),"】//<font color='green'>实际执行文件</font>的<font color='blue'>所在目录</font>","<br/>";echo 'dirname(__FILE__):【<font color="#EE00EE">',dirname(__FILE__),"</font>】//<font color='green'>实际执行代码</font>的<font color='blue'>所在目录</font>","<br/>";//echo 'dirname($_SERVER["ORIG_SCRIPT_NAME"]):【',dirname($_SERVER['ORIG_SCRIPT_NAME']),"】//如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe 如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php","<br/>";echo "<br/>";

 

以上是php应用路径变量问题总结的全部内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有其他相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器 根目录 ,以便于您获取更多的相关知识。