在PHP中获取当前页面完整地址是需要通过各种函数与参考组合起来的,包括域名或主机地址,网页地址,网址参数,用户代理,端口号等。
- //获取域名或主机地址
- 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);
实例代码如下:
- /**
- * 获取当前页面地址
- *
- * @author PHPfensi.com
- */
- 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;
- }