PHP str_replace无法正常工作

时间:2010-09-06 23:34:02

标签: php string str-replace

我正在使用str_replace,但它无法正常工作。 我有一个文本区域,输入与表单一起发送。当服务器收到数据时,我想将新行更改为“,”。

$teams = $_GET["teams"];
$teams = str_replace("\n",",",$teams);
echo $teams;

奇怪的是,我收到以下结果

切尔西

,实

,巴塞罗那

而不是Chealsea,真实,巴塞罗那。

怎么了?

4 个答案:

答案 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))