使用 stripslashes() 可直接去除反斜杠转义,json_decode() 能解析 JSON 中的转义字符,而综合处理可用组合函数依次调用 stripslashes、htmlspecialchars_decode 和 urldecode 来应对多重转义情况。

在PHP中处理字符串时,经常会遇到被转义的特殊字符,比如通过 addslashes() 或数据库自动转义后的数据。当我们需要还原这些内容时,就要进行反转义操作。以下是几种实用的函数和方法,帮助你将转义字符还原成原始形式。
使用 stripslashes() 函数
stripslashes() 是最直接的反转义函数,用于移除由 addslashes() 添加的反斜杠。
示例:
- $str = "It\\'s a nice day";
- $original = stripslashes($str);
- // 结果:It's a nice day
这个函数适用于单引号、双引号和反斜杠前的转义符。
立即学习“PHP免费学习笔记(深入)”;
处理 JSON 中的转义字符
如果字符串是通过 json_encode() 转义的,可以使用 json_decode() 来反转义。
示例:
- $json_str = '"Hello\\nWorld"';
- $original = json_decode($json_str);
- // 结果:Hello\nWorld(实际换行)
注意:传入的字符串必须是合法的JSON格式,通常被双引号包围。
综合处理多种转义情况
有时候数据可能经过多重转义,或者不确定转义方式。可以封装一个通用函数:
function unescape_string($str) { $str = stripslashes($str); $str = htmlspecialchars_decode($str, ENT_QUOTES); $str = urldecode($str); return $str; }说明:
这个组合函数适合处理表单提交、数据库读取或API返回的混合转义字符串。
注意事项
在使用反转义函数时要注意:
- 不要对未转义的字符串重复使用 stripslashes,可能导致数据异常
- 开启 magic_quotes_gpc 时(旧版本PHP),输入数据会自动转义,现已废弃
- 建议统一数据处理流程,避免多次转义或漏转义
基本上就这些常用方法。根据你的数据来源选择合适的反转义方式,能有效还原特殊字符的原始内容。不复杂但容易忽略细节。











