PHP字符串转义用于正确处理特殊字符,双引号解析\n\r\t\"\$等,单引号仅支持\和\';手动转义易出错,应优先使用json_encode()、htmlspecialchars()、预处理语句等安全函数。

PHP 中字符串里的转义,主要是为了让某些特殊字符(比如双引号、反斜杠、换行符等)能被正确识别或输出,而不是被当作普通文本或语法符号处理。
常见转义字符及用法
PHP 支持标准 C 风格的转义序列,主要在双引号字符串中生效(单引号里大部分不解析转义,仅支持 \\ 和 \'):
- \n:换行符(LF)
- \r:回车符(CR)
- \t:制表符(Tab)
- \":双引号(用于双引号字符串内嵌双引号)
- \\:反斜杠本身
- \$:美元符号(避免变量解析,如 "\$name" 不会替换成变量值)
单引号 vs 双引号中的转义差异
单引号字符串几乎不解析转义(只认 \\ 和 \'),而双引号会解析所有上述转义序列,还会解析变量(如 $name):
"Hello\nWorld" → 输出两行
'Hello\nWorld' → 原样输出 \n 字符串
需要手动转义的场景
以下情况常需主动加反斜杠:
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
立即学习“PHP免费学习笔记(深入)”;
- 拼接 SQL 语句时防止注入(但更推荐用预处理,而非手动转义)
- 生成 JSON 字符串时确保引号不破坏结构(json_encode() 自动处理,无需手动)
- 写正则表达式时,匹配反斜杠、点、括号等元字符(如 /\\d+\\.\\d+/ 匹配 “123.45”)
- 路径字符串中避免 Windows 下的 \n、\t 被误解析(建议用正斜杠 / 或双反斜杠 \\)
安全替代方案优先于手动转义
手动加反斜杠容易出错且不安全,实际开发中应优先使用内置函数:
- 数据库操作:用 PDO/MySQLi 的预处理语句(prepare + bindParam)
- HTML 输出:用 htmlspecialchars($str, ENT_QUOTES, 'UTF-8')
- JSON:用 json_encode($data)(自动转义并保证格式合法)
- Shell 命令:用 escapeshellarg() 或 escapeshellcmd()
基本上就这些。转义不是越多越好,关键是理解在哪种上下文里哪些字符有特殊含义,再决定是否以及如何转义。










