我正在尝试使用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函数。
我在谷歌上找了大约半个小时的答案,但没找到任何东西。有人可以帮忙吗?
答案 0 :(得分:2)
来自php.net documentation
的很好的例子// 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);
答案 1 :(得分:1)
你是否像这样测试过它?
$str = str_replace( "\r\n", "<br />", $str );
$str = str_replace( "\r", "<br />", $str );
$str = str_replace( "\n", "<br />", $str );
这应该总是起作用。请记住,始终使用"\r"
代替'\r'
。
答案 2 :(得分:1)
您的正则表达式正在转发您的r
和n
。
而不是
preg_replace('/\r\n?/', "<br />", $str);
试试这个:
preg_replace('/\\r\\n/', "<br />", $str);