首页 文章

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

提问于
浏览
0

我有这种形式的文字:

aaaa bbbbb cccccc a:link {text-decoration:none; font-family:Verdana,Arial,Helvetica,sans-serif; color:#ffffff; } a:悬停{text-decoration:下划线; } .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

1 回答

  • 0

    从该字符串中删除非CSS部分所遇到的麻烦是,很难确定哪些部分是CSS而哪些部分不是 .

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

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

    但它变得更糟 . 我假设文本实际上不是 aaaa bbbbb cccccc ,而是一个任意字符串 . 在这种情况下,请考虑它可能是像'I am strong'这样的句子 . 在这种情况下, strong 将是您要删除的字符串的一部分,但 <strong> 也是一个有效的HTML元素(就此问题而言 <I> ),所以即使您只是坚持它也不可能在上面说明string它是否是一个CSS选择器或要保留的文本字符串的一部分 . 你根本无法编写一个在所有情况下都完全可靠的正则表达式 .

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

相关问题