0

こんにちは皆さん、私が以前に投稿した<br>テキストの先頭に挿入されることについて投稿しましたが、修正されました。(これがコードを含む以前の投稿です)から提案されたようにコードを変更しました

$x = preg_replace("/<br>/i","\n",$x);

   $x = preg_replace("/^<br(\/|)>/i","\n",$x);

最初に挿入されないように機能しまし<br>たが、最後に挿入されています。どうすればそれが起こらないようにできますか?

解決

$x = preg_replace("/^<br(\/|)>/i","\n",$x);
ジャックの解決策---//$x = preg_replace('#^<br(\/|)>+|<br(\/|)>+$#i', "\n", $x);
元のpreg_replaceに加えて私の修正

$x= preg_replace("/(^)?(<br\s*\/?>\s*)+$/","\n", $x);

アップデート

<br>送信されるたびに追加されることはなくなりまし<br>たが、データベースにのみ表示され、エディターには表示されないテキストの後に 2 つあるようになりました。私はこれらの休憩を取り除く必要があります!

4

1 に答える 1

1

これは、一致<br>する<br/><br />、開始時または終了時に行う必要があります。

preg_replace('#^<br(\s*/)?>|<br(\s*/)?>$#i', "\n", $str);

タグは以下と一致します: * リテラル<br * オプションのスペースとそれに続くスラッシュ

中央の|は、代替条件 (つまりOR) を示すために使用されます。

編集

あなたの代わりに、あなたが以前に持っていたものを<br(\s*/)?>書くこともできます。<br(\/|)>

編集 2

+各パターンの後ろに追加するだけで、複数の出現を照合できます。

preg_replace('#^<br(\/|)>+|<br(\/|)>+$#i', "\n", $str);
于 2012-10-01T17:04:23.883 に答える