【发布时间】:2010-11-14 19:26:35
【问题描述】:
我想有选择地从字符串中解析出 HTML。我使用 strip_tags 来允许 div,但我不想保留字符串中的 div 样式/类。也就是说,我想要:
<div class="something">text</div>
<div style="something">text</div>
简单地变成:
<div>text</div>
在这两种情况下。
有人可以帮忙吗?谢谢!
【问题讨论】:
我想有选择地从字符串中解析出 HTML。我使用 strip_tags 来允许 div,但我不想保留字符串中的 div 样式/类。也就是说,我想要:
<div class="something">text</div>
<div style="something">text</div>
简单地变成:
<div>text</div>
在这两种情况下。
有人可以帮忙吗?谢谢!
【问题讨论】:
将以下正则表达式替换为空:
(?<=<div.*?)(?<!=\t*?"?\t*?)(class|style)=".*?"
【讨论】:
class= 或style= 像<div title="style=" class="foo"> 怎么办?
<div title=" style=" class="foo">。
这是一个例子:
preg_replace('`<div (style="[^"]*"|class="[^"]*")>([^<]*)</div>`i', "<div>$1</div>", $str);
基本上,这将 div 的内容与样式或类属性相匹配。然后,您删除所有内容以仅保留 <div>content</div>。
它比 J V 的版本长,但它不会取代像 <div style="blablabla" color="blablabla">content</div> 这样的东西,例如。可能是也可能不是你想要的。
【讨论】:
作为 regexp 的一个选项(这总是让我感到害怕), 我建议使用 xml_parse_into_struct。
参见 php.net,这是第一个示例。
【讨论】: