【问题标题】:PHP Regular Expression to quotations to attributesPHP正则表达式对属性的引用
【发布时间】:2010-05-15 18:19:47
【问题描述】:

我需要通过一个正则表达式函数运行一个 html 字符串,该函数检查属性是否用引号括起来,如果不是,则关闭它们。

例如我想要

<img src=http://www.domain.com/image.gif border=0>

变成

<img src='http://www.domain.com/image.gif' border='0'>

谁能帮帮我?

【问题讨论】:

    标签: php regex html-parsing


    【解决方案1】:

    使用 Tidy 怎么样?正则表达式确实不是绕过 HTML 的方法。

    【讨论】:

    • 我真的只需要附上 SRC='' 属性。所以我相信正则表达式会对此有好处。它不必在大规模上完美运行,只需在 情况下完美运行
    • 好吧(后果自负):preg_replace("/=([^'" ]+)/", "=\"$1\"", $html)。这很简单,但应该在简单和标准的情况下完成这项工作。
    • 感谢您的帮助,在我的测试用例中产生:" 你能帮我完善代码吗?
    • 忘记转义和结束尖括号:preg_replace("/=([^'\"&gt; ]+)/", "=\"$1\"", $html)。这适用于我的 php。
    【解决方案2】:

    尝试解析或验证 HTML 是一项复杂的工作,最好不要尝试使用正则表达式。有太多的可能性让它变得高效。

    Jakub 在我之前到达那里,但我同意。使用现有的工具,例如 HTML Tidy - http://tidy.sourceforge.net/

    它可以修复无效的 HTML,请参阅 http://www.w3.org/People/Raggett/tidy/ 的精彩概述

    http://uk3.php.net/tidy 有一些 PHP 集成

    【讨论】:

      猜你喜欢
      • 2013-03-16
      • 2010-11-25
      • 1970-01-01
      • 2011-01-15
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多