我正在尝试编写一个 preg_replace 来清除允许标签的所有标签属性,以及允许列表中不存在的所有标签。
基本示例 - 这个:
<p style="some styling here">Test<div class="button">Button Text</div></p>
结果会是:
<p>test</p>
我有这个工作得很好.. 除了 img 标签和 href 标签。我不需要清理 img 和 a 标签的属性。可能是其他人。我不确定是否有办法设置两个允许列表?
1) 一份清单,列出清理后允许留下
的标签 2) 一份清单,列出允许但不理会的标签?
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>