我在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);
实际上它确实找到了一些剩余的换行符。
有什么想法吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
您应该使用:
$text = str_replace("\r\n", " ", $text)
$text = str_replace("\r", " ", $text)
$text = str_replace("\n", " ", $text)
或
$text = str_replace("\r\n", null, $text)
$text = str_replace("\r", null, $text)
$text = str_replace("\n", null, $text)