PHP剥离奇怪的html标签

时间:2011-05-01 02:03:16

标签: php


当我使用strip_tags来修改HTML文本时,我遇到了问题 HTML代码是

<img style="max-width: 60px; max-height: 90px;
            width: expression(this.width > 60 ? 60: true);
            height: expression(this.height > 90 ? 90: true);"
     src="image.php?s=d377256dd97b17e9bf0b1182743c95c2&amp;u=1&amp;dateline=1215813557"
     alt="DailyFX Forum Administrator's Avatar" />

strip_tags无法正常运行,我想使用preg_replace编写一些代码,但我不知道如何匹配上一个>,而不是>在风格。你能救我吗?

感谢
加里

3 个答案:

答案 0 :(得分:1)

由于您的标记无效,因此在使用strip_tags或任何其他标记解析器之前必须对其进行清理。对于此特定问题,您可以尝试: preg_replace("expression([^)]+)", "", $your_html)

我建议你切换到使用样式表而不是内联样式,这样你就有了有效的标记。

答案 1 :(得分:0)

这是一个完美的例子,正则表达式不会削减它(至少有一个没有复杂的)。

使用DOM解析器。

答案 2 :(得分:0)

确实不想尝试使用preg_replace解析复杂的HTML。这几乎是不可能的。

查看http://simplehtmldom.sourceforge.net/或其中一个other PHP HTML libraries