Skip to content Skip to sidebar Skip to footer

Replace Carriage Return In An Email

I'm trying to replace carriage returns with a line break in PHP so that my site moderators don't have to type every time they want to add a new line when typing an email from my s

Solution 1:

Quite good example from 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);

Solution 2:

Your regular expression is escaping your r and n.

Instead of

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

Try this:

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

Solution 3:

Did you test it like this?

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

This should work pretty much always. And remember always use "\r" instead of '\r'.


Post a Comment for "Replace Carriage Return In An Email"