いくつかの HTML スニペットを解析しようとしていますが、さまざまな理由 (XSS など) でそれらをクリーンアップしたいと考えています。
現在、アンカーの href を除いて、タグのすべての属性を削除しようとしています。私は一連の eregi_replace 呼び出しを使用してこれを行っていますが、preg_replace とわずか数行のコードを使用してこれを行うよりスマートな方法があると確信していますが、それを機能させることができませんでした。誰でも助けることができますか?
現在のコード:
$data_item = eregi_replace("<p[^>]*>","<p>", $data_item);
$data_item = eregi_replace("<h2[^>]*>","<h2>", $data_item);
$data_item = eregi_replace("<h3[^>]*>","<h3>", $data_item);
$data_item = eregi_replace("<h4[^>]*>","<h4>", $data_item);
$data_item = eregi_replace("<h5[^>]*>","<h5>", $data_item);
$data_item = eregi_replace("<h6[^>]*>","<h6>", $data_item);
$data_item = eregi_replace("<ul[^>]*>","<ul>", $data_item);
$data_item = eregi_replace("<ol[^>]*>","<ol>", $data_item);
$data_item = eregi_replace("<li[^>]*>","<li>", $data_item);
$data_item = preg_replace("/<a([^>]*)( href=\S+)([^>]*)>/i", '<a$2 rel="nofollow">', $data_item);
(HTML タグのサブセットのみを解析する必要があります。その前に、望ましくないものを取り除きます)。