You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何获取含查询参数的完整URL?$_SERVER使用问题

解决PHP获取带查询参数的完整URL问题

你的问题核心是:$_SERVER["SCRIPT_NAME"]本身就不包含URL的查询参数部分,它只存储当前执行的脚本文件路径(比如/index.php),所以你之前的代码自然拿不到?page=home这类参数。下面给你两种直接可行的修改方案:

方案一:手动拼接脚本名和查询参数

保留你原本截取脚本名的逻辑,再判断并拼接查询参数:

// 截取当前脚本文件名(和你原来的代码一致)
$curPageName = substr($_SERVER["SCRIPT_NAME"], strrpos($_SERVER["SCRIPT_NAME"], "/") + 1);
// 如果存在查询参数,拼接到脚本名后面
if (!empty($_SERVER["QUERY_STRING"])) {
    $curPageName .= "?" . $_SERVER["QUERY_STRING"];
}

输出链接的代码不用改,依然是:

<a href="https://example.com/<?php echo $curPageName; ?>" title="Check this site in English">查看英文站点</a>

方案二:直接使用$_SERVER["REQUEST_URI"](更简洁)

$_SERVER["REQUEST_URI"]会直接返回域名后的完整路径,包括脚本名和所有查询参数(比如/index.php?page=home),直接用它更省心:

$fullPath = $_SERVER["REQUEST_URI"];

输出链接时直接拼接域名和这个路径:

<a href="https://example.com<?php echo $fullPath; ?>" title="Check this site in English">查看英文站点</a>

注意:如果你的网站部署在子目录下(比如https://example.com/blog/index.php?page=home),REQUEST_URI会自动包含/blog/index.php?page=home,直接拼接域名就能得到正确的完整URL,不需要额外处理。

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:31:25