有没有办法从字符串中使用正则表达式删除html标签,但只保留标签和相关样式?
例如:
<div>
<p>Blah blah blah <a href="xyz.com" style="blah blah">blah blah</a> blah blah</p> </div>
会给你:
Blah blah blah <a href="xyz.com" style="blah blah">blah blah</a> blah blah
感谢您的帮助
答案 0 :(得分:1)
你不需要正则表达式,你可以使用strip_tags和第二个参数
答案 1 :(得分:1)
最好的办法是使用strip_tags
函数和第二个参数:
$new_string = strip_tags($input_string, "<a>");
答案 2 :(得分:0)
您必须将preg_replace_callback
与以下正则表达式一起使用:
$regex = "/<(\S+)[^>\\/]*(?:\\/>|>(.*)</\\1>)/msi";
这将选择所有标签。现在,您必须检入回调,如果组1
的内容不是a
或A
,您可以返回组2
的内容(内部)标签)否则返回组0
(无修改)。