zoukankan      html  css  js  c++  java
  • PHP获取站点根目录

      1 将下面的代码放在网站根目录下的一个文件中,以便在其它文件中引用。
      2 
      3 路径方式:
      4 
      5 define('BASE_PATH',str_replace('\','/',realpath(dirname(__FILE__).'/'))."/");
      6 
      7 echo BASE_PATH;
      8 
      9  
     10 
     11 输出结果:E:/wwwroot/
     12 
     13 url方式:
     14 
     15  
     16 
     17 $PHP_SELF=$_SERVER['PHP_SELF'];
     18 
     19 $url='http://'.$_SERVER['HTTP_HOST'].substr($PHP_SELF,0,strrpos($PHP_SELF,'/')+1);
     20 
     21 echo $url;
     22 
     23  
     24 
     25 输出结果:http://localhost/
     26 其它的资料整理:
     27 PHP取得站点根目录
     28 
     29  
     30 
     31 echo $_SERVER['HTTP_HOST'];//当前请求的 Host: 头部的内容 即域名信信息
     32 
     33 echo $_SERVER['PHP_SELF'];//当前正在执行脚本的文件相对网站根目录地址,就算该文件被其他文件引用也可以正确得到地址
     34 
     35  
     36 
     37 echo $_SERVER['SCRIPT_NAME'];//当前正在执行脚本的文件相对网站根目录地址,但当该文件被其他文件引用时,只显示引用文件的相对地址,不显示该被引用脚本的相对地址。
     38 
     39  
     40 
     41 echo $_SERVER['DOCUMENT_ROOT'];//网站相对服务器地址即网站的绝对路径名 #当前运行脚本所在的文档根目录。在服务器配置文件中定义
     42 
     43  
     44 
     45 echo $_SERVER['SCRIPT_FILENAME'];//当前执行脚本的绝对路径名。
     46 
     47  
     48 
     49 方法一:
     50 
     51  
     52 
     53 今天讲了大致的站点目录结构,其中说到了怎样取得站点根目录,好多同学不是很理解,下面一步一步道来:
     54 
     55  
     56 
     57 我的站点目录据对路径:D:wwwmessage2011,测试文件路径:D:wwwmessage2011includeconfig.inc.php
     58 
     59  
     60 
     61 在根目录下新建一个文件,也可以隔一层目录创建,就以上面为例,我要在config.inc.php中取得站点的根目录。
     62 
     63  
     64 
     65 1、取得当前文件的路径:用魔术常量__FILE__。这里的路径包含了文件名,结果如下:
     66 
     67  
     68 
     69 D:wwwmessage2011includeconfig.inc.php
     70 
     71  
     72 
     73 2、去掉上面路径的文件名,得到纯路径:dirname(__FILE__),结果如下:
     74 
     75  
     76 
     77 D:wwwmessage2011include
     78 
     79  
     80 
     81 3、返回一层目录到根目录:realpath(dirname(__FILE__).'/../'),结果如下:
     82 
     83  
     84 
     85 D:wwwmessage2011
     86 
     87  
     88 
     89 4、把向左的”“转化成向右的”/“:str_replace( '\' , '/' , realpath(dirname(__FILE__).'/../')),结果如下:
     90 
     91  
     92 
     93 D:/www/message2011
     94 
     95  
     96 
     97 到这就是我们想要的站点根目录了,可以根据需求设定第三步返回目录层数,比如:返回2层就是 /../../,那么就会得到 D:www,以此类推。
     98 
     99  
    100 
    101 方法二:
    102 
    103  
    104 
    105 在global.inc   里定义根目录
    106 
    107  
    108 
    109 define("APP_ROOT",dirname(__FILE__));
    110 
    111  
    112 
    113 在任何PHP文件中可以引用该常量
    114 
    115  
    116 
    117 require_once(APP_ROOT."/inc/head.php");
    118 
    119  
    120 
    121  
    122 
    123 方法三:
    124 
    125  
    126 
    127 <?php
    128 
    129  
    130 
    131 $PHP_SELF=$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
    132 
    133  
    134 
    135 $url='http://'.$_SERVER['HTTP_HOST'].substr($PHP_SELF,0,strrpos($PHP_SELF, '/')+1);
    136 
    137  
    138 
    139 echo $url;
    140 
    141  
    142 
    143 方法四:
    144 
    145  
    146 
    147 $basepath=$_SERVER['PHP_SELF'];
    148 
    149  
    150 
    151 $basepath=substr($basepath,0,strpos($basepath,"文件夹名称"));
    152 
    153  
    154 
    155 echo $basepath;
    156 
    157  
    158 
    159 如:你把文件保存为a.php并路径为:/wjj/wjj1/wjj2/a.php
    160 
    161  
    162 
    163 上面的例子就写成:
    164 
    165  
    166 
    167 $basepath=$_SERVER['PHP_SELF'];
    168 
    169  
    170 
    171 $basepath=substr($basepath,0,strpos($basepath,"wjj1"));
    172 
    173  
    174 
    175 echo $basepath;
    176 
    177  
    178 
    179 方法五:
    180 
    181  
    182 
    183 $basepath=$_SERVER['PHP_SELF'];
    184 
    185  
    186 
    187 preg_match("/(/)?([^/]+)/",$basepath,$wjm);
    188 
    189  
    190 
    191 echo $wjm[0];
    192 
    193  
    194 
    195 注意,第二种方法我不太会,如文件路径为:/wjj/wjj1/wjj2/a.php,它只返回 /wjj 后面的/自己加!
    196 
    197  
    198 
    199 ?>
  • 相关阅读:
    仿照everything写的一个超级速查 原创
    [转]SharePoint 2013 Online App Development – Part 1
    [转]SharePoint 2013 App 开发 (2)
    [转]ASP.NET自定义控件复杂属性声明持久性浅析
    HasRights方法参数
    故障分析神器——BTrace
    JVM——Memory Analyzor分析内存溢出
    关于句柄
    Java内存区域与内存溢出
    命令行的使用
  • 原文地址:https://www.cnblogs.com/hgj123/p/4564111.html
Copyright © 2011-2022 走看看