【问题标题】:How to "read" a HTML document in PHP?如何在 PHP 中“读取”HTML 文档?
【发布时间】:2012-03-07 15:56:13
【问题描述】:

我在很长一段时间内都面临着一个问题。不幸的是,我无法自己找到解决方案,所以我必须在这里发布我的问题。

我正在编写一个从动态创建的 HTML 文件创建 PDF 文件的小 php 脚本。

现在我想“解析” html 文件并执行一个动作来确定 HTML 中的下一个标签。

例如

<div><p>Test</p></div>

我的脚本应该能识别:

第一个标签是一个 div:为 div 做函数 第二个标签是 p: do function for p

我不知道我应该搜索什么。常用表达? HTML 解析器?

感谢您的提示!

【问题讨论】:

  • 试试DOMDocument
  • 这是你可以使用的东西吗? stackoverflow.com/questions/292926/…
  • @mgraph:好的,我会试试这个。非常感谢!也许你可以给我举个小例子?我想用 '

    Heading

    Text

    ' 做以下事情: if #content->h1 available print_h1() ;这是一个没有更深层次意义的例子。只是想了解基础知识,因为我尝试但没有。 :-)

标签: php html parsing


【解决方案1】:

尝试使用 XML 解析器。在 PHP 中,SimpleXML 可能是您正在寻找的。

【讨论】:

    【解决方案2】:

    我用过几次phpQuery。这是一个不错的解决方案,虽然它相当大并且似乎不再受支持(最后一次提交 > 10 个月)。

    【讨论】:

      【解决方案3】:

      【讨论】:

      • @simplemotives 虽然这不是最佳实践,但在我相信组合买单之后,在做 OP 的 hacky 事情时。如果 OP 可以控制系统的两端(HTML 创建和 PDF 创建),那么实际的 html 文件可以以符合标准的方式编写,因此可以使用良好的 RegEx 进行解析
      • 我还是不同意。即使 OP 控制 HTML,他可能仍然有多个标签变体,这使正则表达式解析变得复杂。即使这是一个 hacky 脚本,也有一些 dom 库可以让这变得更容易。 simplehtmldom.sourceforge.net 包含lib,加载html,使用选择器获取你想要的元素,避免复杂化。
      • 同意,但你有什么建议? @xato 建议的解析器?如果是这样,是哪一个?我认为任何第三方解析器内部仍会使用某种形式的表达式匹配,这不是对的吗?话又说回来,这不是我的专业领域! :)
      猜你喜欢
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 2018-01-18
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      相关资源
      最近更新 更多