php简单的dom解析器,找到没有标题作为父级的链接

时间:2014-04-02 07:45:02

标签: php simple-html-dom

也许我的方法不正确,所有建议都表示赞赏 我试图从网页上刮下所有标签,然后按如下顺序排序 h1,h2,h3,h4,h5,h6,a(其余全部) 我的代码到目前为止,

$layout['h1']=$html->find('h1 a');
$layout['h2']=$html->find('h2 a');
$layout['h3']=$html->find('h3 a');
$layout['h4']=$html->find('h4 a');
$layout['h5']=$html->find('h5 a');
$layout['h6']=$html->find('h6 a');
$layout['a']=$html->find('a');

//then i can print the arrays as follows
foreach ($layout as $key=>$value){
    foreach ($layout[$key] as $text) {
       echo $text.' |  ';
    }
}   

这一切在输出时效果很好但是我的问题是如何才能获得没有标题标签的标签。

我可以举例说明所有的标签     $ layout [all_links] = $ html-> find('a') 然后执行循环以删除用标题标记包装的所有标记,并保留剩下的结果。我不知道如何对此进行编码,或许未设置?

在此先感谢,我已经尝试过多种方法来做但不知所措,是否有人有更好的建议,或者我应该考虑整个功能

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

foreach($html->find('a') as $a){
  if(!preg_match('/h[1-6]/', $a->parent->tag)) echo $a;
}

这将跳过其父级不是a的{​​{1}} .. h1