在PHP中替换\n或\\n但不是"n"

use*_*784 1 php str-replace

当我为\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"字母.

Cor*_*bin 7

新行和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)