PHP带奇数html标记

PHP带奇数html标记,php,Php,当我使用strip\u标签将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=d377256dd


当我使用
strip\u标签
将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\u标签
无法正常工作,我想用
preg\u replace
编写一些代码,但我不知道如何匹配最后一个
,而不是样式中的
。你能帮我吗

谢谢

Gary

这里有一个很好的例子,正则表达式不会对其进行剪切(至少是一个不复杂的正则表达式)

使用DOM解析器。

你真的不想用preg\u替换来解析复杂的HTML。几乎不可能做到正确


查看或其中一个。

由于您的标记无效,您必须在使用strip_标记或任何其他标记解析器之前对其进行清理。对于此特定问题,您可以尝试:
preg\u replace(“表达式([^)]+),“”,$your\u html)


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

无关:这是一个非常奇怪的表达式:
height:expression(this.height>90?90:true)现在可能:
高度:true??你的意思是:
height:expression(this.height>90?90:this.height)如果你这样做,只需使用
最大高度:90px
@Rudie我认为这个CSS表达式是为了绕过IE6的限制(比如不支持
max height
属性)?IE6到底是什么?如果你使用IE6,你应该得到一些糟糕的、不可读的网站,这些网站会失败、破坏并摧毁你的计算机。将代码缩进4个空格(或者选择它并按
{}
按钮)。这会将您的代码标记为代码。不需要HTML转义所有内容。@Rudie很公平,你必须足够幸运,不必支持它。是的,没有捷径。这是在使用strip_标记之前对其进行清理的唯一方法。例如preg_replace(数组(''/]*>.*?/mi'),'',$your_html)