在php中獲取當前頁面完整地址是需要通過各種函數與參考組合起來的,包括域名或主機地址 網頁地址 網址參數 用戶代理 端口號等。
基於函數了解
PHP實現:
//獲取域名或主機地址
echo $_SERVER['HTTP_HOST']."<br>"; #localhost
//獲取網頁地址
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php
//獲取網址參數
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5
//獲取用戶代理
echo $_SERVER['HTTP_REFERER']."<br>";
//獲取完整的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);
實例
代碼如下 復制代碼/**
* 獲取當前頁面地址
*
* @author bKjia.c0m
*/
function getPageUrl() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
return $pageURL;
}