【问题标题】:PHP DOM: Get all text valuesPHP DOM:获取所有文本值
【发布时间】:2012-04-19 18:22:33
【问题描述】:

我有一个可能看起来像这样的 HTML 字符串:

<body>
  <div>
    <span class="blah">Monkey </span>
    <p>breath really <b>stinks</b></p>
    And I don't like it!
  </div>
</body>

如您所见,有些文本作为值正确包含在元素内部,有些元素包含文本节点和其他元素。我希望能够在 body 下获取 所有文本值(假设 body 是我存储在变量中的 DOMElement)。

所以,输出看起来像:

Monkey breat 真的很臭而且我不喜欢它!

我该怎么做? XPath?正则表达式?魔法?

【问题讨论】:

  • 试试魔法,当它感觉时,你会使用 javascript。
  • @jwegner - 你为什么要这样做?用例是什么?
  • @Flukey 类似于here 讨论的“链接密度”,我想计算 HTML 表单的 密度
  • @Chibuzo,我一直在尝试魔法,但我不断收到语法错误。此外,不能使用 javascript,因为 HTML 是通过 cURL 加载到 PHP 中的。

标签: php text html-parsing domdocument


【解决方案1】:

如果你不介意使用 jquery,我可能会有答案。

首先我们需要抓取内容。所以使用 php curl 并回显内容。在你获取正文中的内容后触发一个 jquery 函数,该函数具有以下行,

假设所有文本都包含在 id 为内容的 div 中

$('#content').text() gives you the required output.

请记住使用 jquery 委托将函数绑定到您选择的任何事件。

【讨论】:

  • 这是 PHP 内部的,HTML 是通过 cURL 收集的。不幸的是,jQuery 不是一个选项。
  • 我每天都在使用同样的东西。我只会编辑这个答案给你一个完整的画面
  • 不,真的,这不能在前端完成。从字面上看,没有前端。将其视为一种 API 函数——完全在服务器上运行,解析结果通过 JSON 传递给用户。
猜你喜欢
  • 1970-01-01
  • 2015-12-04
  • 2016-05-03
  • 2013-04-20
  • 1970-01-01
  • 2015-06-03
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多