生命之风的低语
Whispers in the Wind of Life.

使用PHP获取当前页面的URL

秀秀 发布于 2024-6-24 11:01    13 次阅读

在 PHP 中,你可以使用 $_SERVER['REQUEST_URI'] 来获取当前页面的 URL 路径,但要获取完整的 URL,包括协议、主机名和路径,你需要结合几个 $_SERVER 变量来构建它。以下是一个简单的函数,用于获取当前页面的完整 URL:

function getCurrentUrl() {
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? 'https' : 'http';
    $host = $protocol . '://' . $_SERVER['HTTP_HOST'];
    $path = $_SERVER['REQUEST_URI'];
    $currentUrl = $host . $path;
    return $currentUrl;
}

// 使用函数获取当前页面的完整URL
$currentUrl = getCurrentUrl();
echo $currentUrl;

这个函数首先检查是否使用了 HTTPS 协议(通过检查 $_SERVER['HTTPS'] 变量或端口是否为 443),然后构建 URL 的协议部分。接下来,它使用 $_SERVER['HTTP_HOST'] 来获取主机名,并使用 $_SERVER['REQUEST_URI'] 来获取当前页面的路径。最后,将这些部分组合起来形成完整的 URL。

请注意,$_SERVER['REQUEST_URI'] 包含了查询字符串(如果有的话)。如果你不需要查询字符串,可以使用 parse_url() 函数来提取路径部分,忽略查询字符串:

$parts = parse_url($currentUrl);
$path = $parts['path']; // 这将仅包含路径,不包括查询字符串
$cleanUrl = $host . $path;

这样,$cleanUrl 变量就会包含没有查询字符串的 URL。