php中的系统变量 $_SERVER 里面包含了 header,path(路径),HTTP协议等信息,想要获取当前页的url地址就需要用到 $_SERVER 系统变量了。具体的获取方法可以参考下面的教程。

php 获取当前页面完整的URL地址的方法

先打印下系统变量 $_SERVER,下面列了 $_SERVER 中关于访问页面路径以及网址等信息。

array(35) {
  ["HTTP_HOST"]=>
  string(9) "mochu.com"
  ["PATH_INFO"]=>
  string(0) ""
  ["SERVER_NAME"]=>
  string(9) "mochu.com"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["REQUEST_SCHEME"]=>
  string(4) "http"
  ["DOCUMENT_URI"]=>
  string(11) "/post/a.php"
  ["REQUEST_URI"]=>
  string(11) "/post/a.php"
  ["SCRIPT_NAME"]=>
  string(11) "/post/a.php"
  ["PHP_SELF"]=>
  string(11) "/post/a.php"
}

判断是否为https协议

先用 $_SERVER 中的 SERVER_PORT 参数判断一下是否为HTTPS协议!

if(((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443)){
    echo "https://";
}else{
    echo "http://";
}

获取当前网页的网址

echo $_SERVER['HTTP_HOST'];

输出结果:

mochu.com

获取当前网页的路径

echo $_SERVER['REQUEST_URI']

输出结果:

/post/a.php

组合当前页面完整的url地址:

//获取HTTP协议
if(((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443)){
    $http = "https://";
}else{
    $http =  "http://";
}
//组合完整的url地址
$url = $http . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $url;

输出结果:

http://mochu.com/post/a.php

ps:mochu.com 为本地环境的测试地址哦!