【发布时间】:2012-04-25 02:09:59
【问题描述】:
我在 PHP 中遇到了一些奇怪的行为。我有来自<textarea/> 输入的一串文本,似乎:
$text = str_replace(array("\r\n", "\r", "\n"), null, $text);
成功删除换行符,而
$text = str_replace("\n", " ", $text)
$text = str_replace("\r\n", " ", $text)
$text = str_replace("\r", " ", $text)
编辑:上面的三个 str_replace 调用分别用于 \n、\r\n 和 \r
没有成功删除换行符。我什至尝试添加:
$text = str_replace(PHP_EOL, " ", $text);
但这并不能解决问题。我知道我正在用空格而不是 null 替换换行符,但我希望这也能工作。在进行 3-4 次 str_replace() 调用后,如果我:
echo nl2br($text);
它确实找到了一些剩余的换行符。
有什么想法吗?
【问题讨论】:
-
你有一行重复了 3 次...你的意思是
\r\n在第一个,\r在第二个和 \n 在3rd一个? -
另外,您将在第一种方法中替换为
null,但在其他方法中替换为一个空格。这是故意的吗? -
弗兰克,是的,这是一个巨大的错字,对不起! jb,是的,这是故意的,但我希望每个人在实际删除换行符时表现相似。
标签: php string str-replace