php 获取当前页面 url
PHP 没有获取当前页面 url 的内置函数,获取当前页面 url 需要几个函数共同协作才行。网址一般由协议(http/https)、主机名(域名)、端口(http 默认是 80,https 默认是 443)、目录、文件、查询参数等构成,我们只要分别获取这几部分然后再组合起来就可以了。
协议
这个可由 $_SERVER['HTTPS']
来判断,该值存在即为 https ,否则就是 http 。
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';
主机名
该部分比较简单,不需要判断,由$_SERVER['HTTP_HOST']
获取
$host=$_SERVER['HTTP_HOST'];
端口
端口可用$_SERVER['SERVER_PORT']
来获取
$port=$_SERVER['SERVER_PORT'];
目录、文件、查询参数
这部分用$_SERVER['REQUEST_URI']
获取就可以了,包含请求的完整路径和查询字符串
$request=$_SERVER['REQUEST_URI'];
各部分都搞定后,剩下的就是组合起来了,一个完整的 URL 可以表示为:
$curUrl=$protocol.$host.":".$port.$request;
封装成函数
function getCurrentPageURL() {
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://"';
$host = $_SERVER['HTTP_HOST'];
$request = $_SERVER['REQUEST_URI'];
return $protocol . $host . $request;
}
一般端口都是默认的,所以在封装函数时没有加端口,如果有需要,自行添加即可。
- 使用示例
$curURL = getCurrentPageURL();
echo $currentURL;
通过以上方式就可以轻松地获取当前页面的完整 URL,并在需要时使用它了。
本文由[ Dazeng ]发布在[ 曾先生分享博客 ],转载请注明出处。