【问题标题】:Get HTML output (cleaned text) with PHP使用 PHP 获取 HTML 输出(清理后的文本)
【发布时间】:2011-04-06 20:21:28
【问题描述】:

你知道是否有任何函数 (PHP) 可以清理一些 HTML 代码(通过 cURL 获得)并过滤可见文本(浏览器将显示的文本)。 谢谢

【问题讨论】:

  • 我假设您正在计算 HTML 文件中的任何文本,因为找出实际可见的文本将非常困难(CSS 显示:无;或只是覆盖它的东西)

标签: php html curl filter


【解决方案1】:

这比你想象的要难。一个明显的简单解决方案是在其上运行 strip_tags() ,但这只会删除标签并保持所有文本内容不变,包括嵌入的 javascript 和 CSS,以及通常隐藏的元素内的所有文本(例如,通过设置 display: none在他们)。您可以尝试一些正则表达式魔术来过滤掉您不感兴趣的部分,但 HTML 上的正则表达式对于任何重要的事情通常都是一个坏主意。恐怕最终的解决方案是使用适当的 HTML 解析器,然后将实际文本从生成的 DOM 树中提取出来——当你拥有它时,你将非常接近实现 Web 浏览器。

【讨论】:

  • 谢谢,我会在运行 strip_tags() 之前尝试删除 java 和 css :-)
  • 我希望你的意思是 javascript。 Java 是完全不同的东西。
【解决方案2】:

【讨论】:

  • 现在我记得为什么我最初停止为这个网站做贡献了。只用了 30 分钟,就重新发现了过度热心的否决选民所造成的挫败感。
【解决方案3】:

如果您实际上只是“清理”代码,那么solution like TIDY could be your answer。

Some solutions like this 将允许您提取纯文本并可能减轻您的痛苦。

但是,“全面”解析是另一回事,您最好熟悉您的正则表达式。

【讨论】:

  • 经过一些改进的 strip_tags 函数应该可以很好地工作。谢谢
猜你喜欢
  • 2011-11-03
  • 2014-08-18
  • 2021-12-25
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
相关资源
最近更新 更多