欢迎访问宙启技术站
智能推送

使用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';
}