PHP DOM:获取所有文本值

Posted

技术标签:

【中文标题】PHP DOM:获取所有文本值【英文标题】:PHP DOM: Get all text values 【发布时间】: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 中的。 【参考方案1】:

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

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

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

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

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

【讨论】:

这是 PHP 内部的,HTML 是通过 cURL 收集的。不幸的是,jQuery 不是一个选项。 我每天都在使用同样的东西。我只会编辑这个答案给你一个完整的画面 不,真的,这不能在前端完成。从字面上看,没有前端。将其视为一种 API 函数——完全在服务器上运行,解析结果通过 JSON 传递给用户。

以上是关于PHP DOM:获取所有文本值的主要内容,如果未能解决你的问题,请参考以下文章

保存添加到 DOM 中的文本框的文本

jQuery常用方法

输入字段中的简单 HTML DOM 解析器

jquery基本Dom操作

dom节点获取文本的方式

php xpath如何从父元素内的多个元素中获取值