我正在使用str_replace,但它无法正常工作。 我有一个文本区域,输入与表单一起发送。当服务器收到数据时,我想将新行更改为“,”。
$teams = $_GET["teams"];
$teams = str_replace("\n",",",$teams);
echo $teams;
奇怪的是,我收到以下结果
切尔西
,实
,巴塞罗那
而不是Chealsea,真实,巴塞罗那。
怎么了?
答案 0 :(得分:8)
要扩展Waage的响应,可以使用数组替换两组字符
$teams = str_replace(array("\r\n", "\n"),",",$teams);
echo $teams;
这应该正确处理这两个项目,因为单个\n
有效,如果您只是替换\r\n
答案 1 :(得分:4)
尝试替换"\r\n"
而不是"\n"
答案 2 :(得分:4)
我会修剪文本并用逗号替换所有连续的CR / LF字符:
$text = preg_replace('/[\r\n]+/', ',', trim($text))
答案 3 :(得分:1)
我有同样的问题,但发现了一个不同的答案,以为我会分享,以防它帮助某人。
我遇到的问题是我想用\n
替换<br/>
以便在HTML中打印。我必须做的简单改变就是逃避str_replace("\n","<br>",($text))
中的反斜杠:
str_replace("\\n","<br>",($text))