2

サーバー上のすべての \n\n を<BR>タグに置き換えて、単一の \n が にならないようにしてい<BR>ます。

例:

Hello,\n\nThis is an\nexample.\n\nThanks!

に行く:

Hello,<BR>This is an\nexample,<BR>Thanks!

(単一の \n が置き換えられていないことに注意してください)

PHP で次の操作を行うと、2 行が改行に置き換えられません。

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

2 に答える 2

5

\n実際には\r\n(入力が Windows オペレーティング システムからのものであることを意味します)、次の正規表現を使用して、最初に *nix 標準に改行を正規化することをお勧めします。

$str = preg_replace('~\r\n?~', "\n", $str);

次に、元のスニペットが機能します ( demo ):

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

次のようにすることもできます。

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

しかし、入力が Linux または古い Mac OS (のみを使用する) からのものである場合、それは機能しません\r

于 2012-05-30T22:55:19.680 に答える
2

文字を二重にエスケープする必要があります。

試す:

$str = str_replace("\\n\\n", "<br />", $str);
于 2012-05-30T22:53:09.300 に答える