使用PHP从文本中删除内联CSS和类

我有这样一个文本:

aaaa bbbbb cccccc a:link {text-decoration:none; font-family:Verdana,Arial,Helvetica,sans-serif; color:#ffffff; } a:hover {text-decoration:underline; } .intro {font-size:11px; font-weight:bold; line-height:18px; color:#ffffff; padding-left:25px; font-family:Verdana,Arial,Helvetica,sans-serif; } ddddd eeeeee

我想删除所有类的CSS。 输出应该是:

aaaa bbbbb cccccc ddddd eeeeee

aynone能给我看一个preg_match的例子吗? 我喜欢一个例子来删除brakets {}之间的所有内容,但我需要,所有与CSS都被删除。

谢谢Nik


从字符串中删除非CSS部分的麻烦在于,很难确定哪些部分是CSS,哪些不是。

你说你想留下aaaa bbbbb cccccc ddddd eeeeee ,但实际上从你的原始字符串中, aaaa bbbbb cccccc将是CSS选择器的有效部分。 他们将选择名为<aaaa><bbbbb><cccccc>

当然,这些都不是有效的HTML元素,但CSS可以用于将样式应用于任意XML和HTML,因此它们可以非常容易地成为有效的元素。 如果您使用的是xhtml,则它们可以在自定义名称空间下非常合法地出现在您的页面中。

但情况变得更糟。 我假设文本实际上不会是aaaa bbbbb cccccc ,但会是任意字符串。 在这种情况下,可以认为这可能是一句像'我很强'的句子。 在这种情况下, strong会成为你想要移除的字符串的一部分,但<strong>也是一个有效的HTML元素(就像<I>就是这个问题),所以即使你只是坚持下去也不可能在上面的字符串中告诉它是否打算成为CSS选择器或保留的文本字符串的一部分。 你根本无法写出在所有情况下都完全可靠的正则表达式。

正如你所说,你可以相当容易地删除{}括号内的所有内容,但大括号外的选择器很难与周围的文本可靠地分离。

链接地址: http://www.djcxy.com/p/87561.html

上一篇: Remove inline CSS and classes from text with PHP

下一篇: supersize calendarextender