2011-08-05 4 views
0
$text = 'blah<br /><br />blah'; 

$text = preg_replace('#<br />#', "\n", $text); 

ブラウザで表示すると、二重改行が入ります。しかし、私はmail()機能を介して自分の電子メールアドレスに送信しようとすると、1行だけを出力します。PHPのmail()関数で二重改行を入力することはできません

誰にこのような理由が分かっていますか?そしてそれを動作させる方法は?

そして、htmlではなくプレーンテキストを送信しようとしています。

Content-Type: text/plain; charset="utf-8"

答えて

0

"\n" 99%の微細であるべきであるが、クロスプラットフォームの互換性溶液のため、代わりにPHP_EOLを使用してみてください。また、私は

$text = "blah<br /><br />blah"; # with double quotes, not to have it treated literal. 
$text = str_replace(array('<br />','<br/>','<br>'), PHP_EOL, $text); 

は、(*)私はこのことについて、批評家のために待っている、(このような単純なが)若干遅くなりますが(*)正規表現を解析し、その代わりにpreg_replace()のstr_replace()をお勧めしたいです

+0

Preg_replaceは、検索して交換するアイテムのリストが長い場合、処理能力の点で価値があります。このような何かのために、str_replaceは十分で速くなります。あなたの助言のためにここに批判はありません。 –

関連する問題