【发布时间】:2011-08-19 07:14:22
【问题描述】:
我必须重新格式化一个可以包含以下内容的字符串:
$string = "---8\7----";
问题是 '\7' 被 PHP 解释为八进制值,而不仅仅是 '\' 然后是 '7'。
请问如何阻止 php 执行此操作?当然,我需要保留'\' 谢谢。
【问题讨论】:
-
您是如何获得输入的?从一个文件?来自 HTML 表单?
我必须重新格式化一个可以包含以下内容的字符串:
$string = "---8\7----";
问题是 '\7' 被 PHP 解释为八进制值,而不仅仅是 '\' 然后是 '7'。
请问如何阻止 php 执行此操作?当然,我需要保留'\' 谢谢。
【问题讨论】:
正如其他人所说,用另一个反斜杠转义反斜杠,但我觉得我应该提到为什么会发生这种情况。你的字符串是用双引号写的,在 PHP 中输入 template mode where certain rules gets invoked,其中一个确实是你偶然发现的。使用单引号也可以解决这个问题,因为它不做任何模板;
$string = '---8\7----';
这是两种模式的优缺点,真的,但只要你意识到这一点,它不应该在未来对你造成太大影响。 :)
【讨论】:
您需要使用反斜杠来转义该字符。
$string = "---8\\7----";
【讨论】:
转义反斜杠。
$string = "---8\\7----";
【讨论】:
使用两个斜杠:
$string = "---8\\7----";
【讨论】:
使用转义字符:
$string = "---8\\7----";
【讨论】: