我想删除所有\r
\n
\r\n
这很容易,所以我写道:
str_replace(array("\r","\n"),"",$text);
但是我看到了这一行:
str_replace(array("\r","\n","\\r","\\n"),"",$text);
我想知道什么是双反斜杠意味着\\r
和\\n
。
答案 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
中的文字反斜杠。
如果您只是想从字符串中删除换行符和回车符,我不确定为什么要匹配。