当我为\n执行str_replace时,它会一直替换我脚本中的所有字母"n".我试图做的是取代这个"看到\nyou \nsoon \n"来说"很快见到你".除了它剥离句子中的每一个n.我一直得到这个"看你洙".
是否可以定位,特别是"\n"而不是"n"?
简单的问题.也许是nimrodic.感谢您的时间和解决方案.
编辑>添加代码> 这是我试图修复的代码
$text = "Description: Join us today, Sunday644 \u2022 Pastor Ed Weiss \u2022 Faith World\nOutreach Church \u2022 Bartlett, IL \u2022 Starting at 11:30am,\nfwo.org\/webcast<http:\/\/www.google.com\/url?q=http:\/\/fwo.org\/webcast&ust=1340553597624000&usg=AFQjCNE5g0jUGFl1nDLmKOHuIG8M8y3Wcg>\n";
preg_match("/Description: ([^\\r\\n]+)/s", $text, $b);
$text = preg_replace("/\u2022/", "•", $text);
$text = preg_replace("/[\n\r]/"," ",$text);
echo $text;
Run Code Online (Sandbox Code Playgroud)
在我的测试中,我丢失了"r"和"n"字母.
新行和n两个完全不同的字符.
新行几乎总是\n用编程语言表示,但实际上只是字符代码10(十进制).另一方面,n是字符代码110(十进制).除了转义序列之外,它们之间根本没有关系.
替换\n并仅\n使用:
$str = str_replace("\n", " ", $string);
Run Code Online (Sandbox Code Playgroud)
编辑1:有关示例,请参阅评论中Conner 发布的代码段.
编辑2:正如JoeCortopassi所指出的,PHP只会解析\n某些类型的字符串文字.例如,'\n'最终将以文字\n字符串结尾.(字符\后跟字符n).
"\n" //new line (char code 10)
'\n' //literal \ followed by n (char code 92 followed by char code 110)
"\\n" //literal \ followed by n (same as '\n')
'\\n' //literal \ followed by n (same as '\n' :p)
Run Code Online (Sandbox Code Playgroud)
要么:
"\n" === chr(10)
'\n' === "\\n" === '\\n' === chr(92) . chr(110)
Run Code Online (Sandbox Code Playgroud)