0

タグを削除せずに HTML コードのタグからすべての属性を削除するpreg_replaceのPHP 正規表現を提案してください。ただし、ハイパー リンクでは、href、terget、rel などのすべての属性はそのままにしておく必要があります。

以下の例を参照してください。

私はすでにpreg_replaceで以下の正規表現を試しました:

$htmltext = '<p style="float: left;">
<span style="color: #ff0000;">
<b>Some text here</b>
</span>
<a target="_blank" rel="nofollow" href="http://thebankexam.com/page/7017">Clickable Text</a>
</p>';
$my_output = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>',$htmltext);
echo $my_output;

フィルタリングされた出力 ($my_output):

<p>
<span>
<b>Some text here</b>
</span>
<a>Clickable Text</a>  <!-- Check this hyper link href, rel and target gone -->
</p>

意図した出力は次のようになります。

<p>
<span>
<b>Some text here</b>
</span>
<a target="_blank" rel="nofollow" href="http://thebankexam.com/page/7017">Clickable Text</a>
</p>
4

1 に答える 1

3
preg_replace('/<a\s+[^>]*href\s*=\s*"([^"]+)"[^>]*>/', '<a href="\1">', $html);
于 2013-10-15T07:56:02.233 に答える