#測試網址: 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獲取當前文件的絕對路徑
<?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__);
得到的是文件所在層目錄名