请建议我使用prege_replace的PHP regex删除除<a>
标记之外的HTML标记中的所有属性。
我已经尝试过:preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>',$htmltext);
它适用于所有HTML标记,但对于<a>
标记,它会删除href,title和target属性。
请建议我在上述正则表达式中进行必要的更改,或者请分享正常工作。
提前致谢。
答案 0 :(得分:3)
to remove all the tags from HTML tags except <a> tag.
不需要正则表达式,您可以使用strip_tags function:
$html = strip_tags($html, '<a>');
更新:preg_replace仅从<a>
以外的HTML代码中删除所有属性。你可以使用这种基于正则表达式的负前瞻:
$htmltext = preg_replace("~<(?!a\s)([a-z][a-z0-9]*)[^>]*?(/?)>~i",'<$1$2>', $htmltext);