【问题标题】:How to extract headings of a page using PHP (specifically WordPress)如何使用 PHP(特别是 WordPress)提取页面标题
【发布时间】:2011-12-23 21:55:04
【问题描述】:

是否可以使用 PHP 从使用 PHP 的页面中提取标题(h1、h2 等),并将它们以无序列表的形式列在同一页面上?特定于 WordPress 的解决方案很好,但也欢迎使用通用 PHP 解决方案。

编辑:我想要的是某种形式

h1
  h2
    h3
    h3
  h2
    h3
    h3

【问题讨论】:

  • 我并不总是发布那个链接,但是当我这样做的时候,因为我懒得找到更准确的欺骗:Best methods to parse HTML in PHP(虽然没有解释太多)。虽然 WP 可能和其他实现通常使用更简单的方法。

标签: php wordpress html-heading


【解决方案1】:

在 php 中,你可以使用 xml 操作:

http://www.php.net/manual/en/domdocument.getelementsbytagname.php

还没有测试,但是对于 h1 是这样的:

$dom = new DOMDocument();

@$dom->loadHTML(file_get_contents('htmlfile.htm'))

$h1 = $dom->getElementsByTagName('h1');

foreach ( $h1 as $val ){
    echo $val->property->__toString();
}

我不太确定函数,而且我无法测试(可能要到明天)...我从http://br.php.net/manual/en/class.domelement.php#98851 得到了tostring

【讨论】:

  • 感谢您的回答。有没有办法对我的所有标题进行排序(这样我就可以列出一个列表,如我的答案所示)?
  • @mc10 好的,您有两个选项(但我不确定一个),您可以使用“*”(在 getElementsByTagName 函数中)提取所有标签,然后筛选出您想要。在 foreach 循环中使用$val->tagName 来测试您要查找的标签。
  • @mc10 哦,我没说。抱歉,我仍然想着另一个项目。另一种选择是尝试将星号作为通配符,但我在网上没有看到任何关于它的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多