データベースからテキスト エントリを読み取りたいのですが、実際には HTML エントリもあれば、テキストとして表示する必要がある HTML マークアップを含むプレーン テキストもあります。
プレーン テキストの場合は、最初に PHP の関数を呼び出しhtmlspecialchars()
てから HTMLPurifier を介して結果を実行することにより、HTML に変換する必要があります。
つまり、 isHTML() 関数の実装方法に関するヒントを探しています。
$text = getTextFromDatabase();
if (!isHTML($text)) {
$text = htmlspecialchars($text);
}
$purifier = new HTMLPurifier();
$clean_html = $purifier->purify($text);
したがって、たとえば、次のテキストが実行されますhtmlspecialchars
。
The <p> tag of HTML has to be followed by a </p> tag to end the paragraph.
また、次のテキストは実行されませんhtmlspecialchars
。
<p>These are few lines of HTML.</p>
<div>There might be multiple independent</div>
<p>but valid HTML blocks in it.</p>
そこにはすでに機能があるはずですisHTML()
が、たまたまそれを見つけることができず、車輪を再発明したくありません:-)。ある種の HTMLPurifier 設定でこれを行うことさえ可能でしょうか?
HTML コードにバグがある場合は、HTMLPurifier で処理する必要があり、コードを実行しないでくださいhtmlspecialchars
。:-) たとえば、HTML コードに<p>
終了タグが必要な場合に、開始タグを使用するなどです。</p>
助けていただければ幸いです。すでにありがとうございます:-)、
ロバート。