反斜杠+数字由PHP解释为八进制值,如何阻止这个?

时间:2011-05-05 11:14:06

标签: php octal

我必须重新格式化一个包含以下内容的字符串:

$string = "---8\7----";

问题是'\ 7'被PHP解释为八进制值而不仅仅是'\'然后是'7'。

我怎么能阻止php这样做呢?当然,我需要保持'\' 感谢。

5 个答案:

答案 0 :(得分:7)

正如其他人所说,用另一个反斜杠来逃避反斜杠,但我觉得我应该提一下为什么会这样。你的字符串是用双引号写的,在PHP中进入template mode where certain rules gets invoked,其中一个确实是你偶然发现的。使用单引号也可以修复它,因为它没有进行任何模板化处理;

$string = '---8\7----';

这是两种模式中的专业人士和对手,实际上,但只要你意识到这一点,它就不应该在将来咬你太多。 :)

答案 1 :(得分:1)

您需要提供反斜杠才能转义该字符。

$string = "---8\\7----";

答案 2 :(得分:0)

逃避反斜杠。

$string = "---8\\7----";

答案 3 :(得分:0)

使用两个斜杠:

$string = "---8\\7----";

答案 4 :(得分:0)

使用escape char:

$string = "---8\\7----";