1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#测试网址: http: //localhost/blog/testurl.php?id=5
//获取域名或主机地址
echo $_SERVER [ 'HTTP_HOST' ]. "" ; #localhost
//获取网页地址
echo $_SERVER [ 'PHP_SELF' ]. "" ; #/blog/testurl.php
//获取网址参数
echo $_SERVER [ "QUERY_STRING" ]. "" ; #id=5
//获取用户代理
echo $_SERVER [ 'HTTP_REFERER' ]. "" ;
//获取完整的url
echo 'http://' . $_SERVER [ 'HTTP_HOST' ]. $_SERVER [ 'REQUEST_URI' ];
echo 'http://' . $_SERVER [ 'HTTP_HOST' ]. $_SERVER [ 'PHP_SELF' ]. '?' . $_SERVER [ 'QUERY_STRING' ];
#http: //localhost/blog/testurl.php?id=5
//包含端口号的完整url
echo 'http://' . $_SERVER [ 'SERVER_NAME' ]. ':' . $_SERVER [ "SERVER_PORT" ]. $_SERVER [ "REQUEST_URI" ];
#http: //localhost:80/blog/testurl.php?id=5
//只取路径
$url = 'http://' . $_SERVER [ 'SERVER_NAME' ]. $_SERVER [ "REQUEST_URI" ];
echo dirname( $url );
#http: //localhost/blog
|
PHP获取当前文件的绝对路径
1
2
3
4
5
|
<?php
echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:\www\test.php
echo dirname( __FILE__ ); // 取得当前文件所在的绝对目录,结果:D:\www\
echo dirname(dirname( __FILE__ )); //取得当前文件的上一层目录名,结果:D:\
?>
|
使用方法提示
dirname(__FILE__) 取到的是当前文件的绝对路径,也就是说,比起相对路径,查找速度是最快的。
如果重复一次可以把目录往上提升一个层次:
比如:$d = dirname(dirname(__FILE__));
其实就是把一个目录给 dirname() 做参数了,因为 dirname() 返回最后的目录不带\\或者是/ ,所以重复使用的时候可以认为 dirname() 把最下层的目录当成文件名来处理了,照常返回当前目录的上级目录,这样重复就得到了它的上一级的目录。
包含得到上一级目录的文件
include(dirname(__FILE__).'/../filename.php');
__FILE__的路径是当前代码所在文件
dirname(dirname(__FILE__));
得到的是文件上一层目录名
dirname(__FILE__);
得到的是文件所在层目录名