zoukankan      html  css  js  c++  java
  • php应用路径变量问题总结

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

    本地服务器,域名http://d.com,根路径D:phpnowvhostsd.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:phpnowvhostsd.com.yiix.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:phpnowvhostsd.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:phpnowvhostsd.com.yiiaa.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:phpnowvhostsd.com.yiia】//实际执行代码所在目录

    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:phpnowvhostsd.com.yiia.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:phpnowvhostsd.com.yiia】//实际执行代码所在目录

    直接访问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:phpnowvhostsd.com.yiiaa.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:phpnowvhostsd.com.yiia】//实际执行代码所在目录

    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:phpnowvhostsd.com.yiia.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:phpnowvhostsd.com.yiia】//实际执行代码所在目录

    源码

    /x.php

    <?php
    echo "<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

    <?php
    echo "/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

    <?php
    echo "/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/>";
  • 相关阅读:
    CSS的Flex弹性布局概念
    配置不同二级域名访问不同端口的应用
    JAVA调用FFMpeg进行转码等操作
    python获取页面文字信息
    gradle配置多个代码仓库repositories
    转载:微信小程序源码提取反编译
    Maven相关:mvn的配置和简单命令
    Spring Data JPA简单查询接口方法速查
    tomcat server.xml详解
    mysql批量插入优化
  • 原文地址:https://www.cnblogs.com/forthxu/p/3232505.html
Copyright © 2011-2022 走看看