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:\www\message2011,测试文件路径:D:\www\message2011\include\config.inc.php

 58 

 59  

 60 

 61 在根目录下新建一个文件,也可以隔一层目录创建,就以上面为例,我要在config.inc.php中取得站点的根目录。

 62 

 63  

 64 

 65 1、取得当前文件的路径:用魔术常量__FILE__。这里的路径包含了文件名,结果如下:

 66 

 67  

 68 

 69 D:\www\message2011\include\config.inc.php

 70 

 71  

 72 

 73 2、去掉上面路径的文件名,得到纯路径:dirname(__FILE__),结果如下:

 74 

 75  

 76 

 77 D:\www\message2011\include

 78 

 79  

 80 

 81 3、返回一层目录到根目录:realpath(dirname(__FILE__).'/../'),结果如下:

 82 

 83  

 84 

 85 D:\www\message2011

 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 ?>

 

你可能感兴趣的:(PHP)