0

newline を置き換えたい\n。出現が 1 つある場合は、 に置き換えられ<br>ます。2 つ以上連続している場合は、 に置き換えられ<br><br>ます。またはどちらかを実行できますが、同じ変数に対して両方を実行する方法がわかりません。

4

3 に答える 3

4

2 つ以上を同じ数の改行に置き換えたい場合は、str_replace が機能するはずです。

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

ただし、3 つの改行文字を 2 つの改行だけに置き換えたい場合は、少なくとも 1 回は正規表現を使用して、2 つの置換を実行する必要があります。

$text = preg_replace('/\n{2,}/', "<br /><br />", $text);
$text = str_replace("\n", '<br />', $text);
于 2012-04-06T03:40:29.327 に答える
0

どうですか:

$pattern = array("/\n\n+/", "/\n/");
$replacement = array('<br/><br/>',  '<br/>' );
$str = "The quick \nbrown fox \n\n\njumps over \n\nthe lazy dog.";

$result = preg_replace($pattern, $replacement, $str);

<br>が本当に必要な場合は、<br/>を<br>に置き換えてください。

于 2012-04-06T04:02:00.073 に答える
0

Godwinのソリューションの(うまくいけばもっと単純な)変形として、試してください:

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

これにより、2 つの連続する改行が 2 つの改行に置き換えられ、残りの 1 つの改行がある場合は、1 つの改行に置き換えられます。これにより、1、2、または 3 つ (またはそれ以上) の連続する改行の置換が実装されます。

于 2012-04-06T04:29:55.933 に答える