在PHP的str_replace()中,双反斜杠是什么意思?

时间:2014-12-04 09:49:22

标签: php string text replace str-replace

我想删除所有\r \n \r\n这很容易,所以我写道:

str_replace(array("\r","\n"),"",$text);

但是我看到了这一行:

str_replace(array("\r","\n","\\r","\\n"),"",$text);

我想知道什么是双反斜杠意味着\\r\\n

2 个答案:

答案 0 :(得分:6)

\是一个转义字符,它用于转义后续字符。

"\n"中,反斜杠会转义n,结果将是新行字符。

"\\n"中,第一个反斜杠转义第二个反斜杠,n保持不变,因此结果是包含 \n 的字符串(字面意思) )。

请参阅PHP official documentation > Strings

在您的问题的上下文中,str_replace()将删除新行("\n""\r"),并从字符串中删除\n\r(分别为"\\n""\\r"。文本没有理由包含\n\r字样,因此似乎使用"\\n""\\r"没有兴趣。

答案 1 :(得分:2)

第一个反斜杠会转义第二个反斜杠,因此它匹配$text中的文字反斜杠。

如果您只是想从字符串中删除换行符和回车符,我不确定为什么要匹配。