2

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

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

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

切尔西

,真实的

,巴塞罗那

而不是 Chealsea,real,Barcelona。

怎么了?

4

4 回答 4

8

要扩展 Waage 的响应,您可以使用数组来替换两组字符

$teams = str_replace(array("\r\n", "\n"),",",$teams);
echo $teams;

这应该正确处理这两个项目,因为一个\n是有效的,如果你只是更换就不会被抓住\r\n

于 2010-09-06T23:49:16.370 回答
4

尝试更换"\r\n"而不是仅仅"\n"

于 2010-09-06T23:35:57.627 回答
4

我会修剪文本并用逗号替换所有连续的 CR/LF 字符:

$text = preg_replace('/[\r\n]+/', ',', trim($text))
于 2010-09-07T02:01:52.407 回答
2

我有同样的问题,但找到了不同的答案,所以我想我会分享以防它对某人有帮助。

我遇到的问题是我想\n<br/>HTML 打印替换。我必须做的简单改变是str_replace("\n","<br>",($text))像这样逃避反斜杠:

str_replace("\\n","<br>",($text))
于 2016-07-25T16:11:38.350 回答