1

我试图用 PHP 中的换行符替换回车,这样我的网站版主就不必在
每次输入来自我网站的电子邮件时都输入新行。我尝试了几种不同的方法来替换换行符,但都没有奏效。我尝试过的方法是:

preg_replace('/\r\n?/', "<br />", $str);
eregi_replace(char(13), "<br />", $str);
str_replace("\r\n", "<br />", $str);
str_replace("\n", "<br />", $str);

和 nl2br 函数。

我在谷歌上找了大约半个小时的答案,没有找到任何东西。任何人都可以帮忙吗?

4

3 回答 3

2

来自 php.net文档的很好的例子

// Order of replacement
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);
于 2012-07-30T14:35:37.467 回答
1

你是这样测试的吗?

$str = str_replace( "\r\n", "<br />", $str );
$str = str_replace( "\r", "<br />", $str );
$str = str_replace( "\n", "<br />", $str );

这应该几乎总是有效。并记住始终使用"\r"而不是'\r'.

于 2012-07-30T14:26:42.347 回答
1

您的正则表达式正在转义您的rand n

代替

preg_replace('/\r\n?/', "<br />", $str);

尝试这个:

preg_replace('/\\r\\n/', "<br />", $str);
于 2012-07-30T14:28:54.800 回答