許可されたタグのすべてのタグ プロパティと、許可されたリストに存在しないすべてのタグを消去する preg_replace を作成しようとしています。
基本的な例 - これ:
<p style="some styling here">Test<div class="button">Button Text</div></p>
次のようになります。
<p>test</p>
これはうまく機能しています..imgタグとa hrefタグを除いて。img と a タグのプロパティをきれいにする必要はありません。おそらく他の人。2 つの許可リストを設定する方法があるかどうかわかりませんでした。
1) クリーニング後に
残すことが許可されているタグの 1 つのリスト 2) 許可されているが放置されているタグの 1 つのリスト
3) 残りは削除されます。
これが私が取り組んでいるスクリプトです:
$string = '<p style="width: 250px;">This is some text<div class="button">This is the button</div><br><img src="waves.jpg" width="150" height="200" /></p><p><b>Title</b><br>Here is some more text and <a href="#" target="_blank">this is a link</a></p>';
$output = strip_tags($string, '<p><b><br><img><a>');
$output = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i", '<$1$2$3$4$5>', $output);
echo $output;
このスクリプトは $string を次のように消去する必要があります。
<p>This is some text<br><img src="waves.jpg" width="150" height="200" /></p><p><b>Title</b><br>Here is some more text and <a href="#" target="_blank">this is a link</a></p>