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

PHP 7.4中$_GET获取参数时反斜杠重复问题求助

解决PHP 7.4中$_GET参数反斜杠被重复转义的问题

排查步骤

先确认参数的实际传递与处理情况,执行以下代码查看原始输入和$_GET的处理结果:

// 打印PHP处理后的参数
var_dump($_GET['name']);
// 打印原始查询字符串,确认传递的是单个%5c
var_dump($_SERVER['QUERY_STRING']);

可能的原因及解决方案

  • 项目自定义转义逻辑:检查项目全局初始化文件(如common.php、init.php),看是否存在手动对$_GET数组执行addslashes()、mysql_real_escape_string()等转义函数的遗留代码,这类代码会导致反斜杠被重复转义,直接移除相关逻辑即可。

  • 服务器安全模块自动转义:部分服务器的安全模块(如Apache的mod_security)会自动对URL特殊字符做转义处理。可以临时关闭该模块测试,或在服务器配置中调整规则,允许反斜杠正常传递。

  • 绕过$_GET的自动处理:直接解析原始查询字符串,避免PHP自动转义的干扰:

$query = $_SERVER['QUERY_STRING'];
parse_str($query, $getParams);
// $getParams['name']即为未被额外转义的原始值
echo $getParams['name'];
  • 手动还原转义:如果确认参数被额外添加了反斜杠,可使用stripslashes()还原,注意仅针对确实被多转义的场景:
if (strpos($_GET['name'], '\\') !== false) {
    $_GET['name'] = stripslashes($_GET['name']);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:25:06