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