2行以上連続した要素を一つにする【正規表現】


$item = '
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src="test.jp">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>あかさたなはまやらな</p>
';

$item = preg_replace('/(<p>&nbsp;<\/p>)\n|\r|\r\n/', '<nbsp_plus_break>', $item);
$item = preg_replace('/(<nbsp_plus_break>){1,}/', "<p>&nbsp;</p>\n", $item);

echo $item;

結果

<p>&nbsp;</p>
<img src="test.jp">
<p>&nbsp;</p>
<p>あかさたなはまやらな</p>

一度、別タグに変換

もっといいやり方絶対あるはず