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 ?>
转载于:https://www.cnblogs.com/hgj123/p/4564111.html
相关资源:php获取网站根目录物理路径的几种方法(推荐)