使用php函数获取当前页面的URL地址。
发布时间:2023-08-28 20:19:00
要获取当前页面的URL地址,可以使用PHP中的$_SERVER['PHP_SELF']和$_SERVER['SERVER_NAME']来获取。$_SERVER['PHP_SELF']返回当前正在执行脚本的文件名,而$_SERVER['SERVER_NAME']返回当前运行脚本的服务器主机名。
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
但是这种方式只会返回当前页面的路径部分,不包含查询参数部分。如果想要获取完整的URL地址(包含查询参数部分),可以使用$_SERVER['REQUEST_URI']来获取。
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
这样就可以获取当前页面的完整URL地址。
另外,如果当前页面使用了SSL(HTTPS协议),需要在URL中添加'https://'而不是'http://'。
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
} else {
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
}
上述代码会根据页面是否使用SSL来确定URL地址的协议部分是'https://'还是'http://'。
需要注意的是,由于$_SERVER数组中的值是从Web服务器提供的,所以在某些情况下可能会被篡改。为了确保URL的安全性,可以对URL进行过滤和验证。
可以使用filter_var函数来验证URL的合法性。
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (filter_var($url, FILTER_VALIDATE_URL)) {
// URL合法
} else {
// URL不合法
}
使用上述代码可以确保获取到的URL地址是合法的。
综上所述,我们可以利用PHP中的$_SERVER数组来获取当前页面的URL地址。具体代码如下:
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
} else {
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
}
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo $url;
} else {
echo 'Invalid URL';
}
