0

ユーザーがデータベースにニュースを挿入するためにBBCodeとHTMLコードの両方を使用できるテキストエリアがあります。このニュースをサイトに表示したい場合、PHPスクリプトはBBCodeをHTMLエンティティに変換し、ニュースコンテンツ(データベースから取得)をHTML標準のHTMLタグを保持して変換します。問題は、HTMLタグの後に追加されるため、 nl2br()関数を使用して改行を<br />タグに変換する場合です。たとえば、次のようになります。<br />

<li>Some text</li><br />

また

<table><br />
<tr><br />
etc.

この厄介な問題を回避する方法はありますか?

4

1 に答える 1

1

正規表現について考えています。これは、テキストがで区切られていない場合にのみ機能するはずです<p></p>(私の意見では少し良いでしょう)。

$formattedText = preg_replace("/(<[a-zA-Z0-9=\"\/\ ]+>)<br\ \/>/", "$1", nl2br($text));

前述のように、他のオプションは、特定のタグ内のテキストを検索し、タグをラップアラウンドすること<p>です。

于 2012-10-26T18:37:52.303 に答える