如何使用PHP和简单的html dom从元素中获取href

时间:2014-01-07 01:12:56

标签: php element simple-html-dom

我有一个看起来有点像这样的HTML页面

xxxx
<a href="www.google.com">google!</a>

<div class="big-div">
    <a href="http://www.url.com/123" title="123">
    <div class="little-div">xxx</div></a>

    <a href="http://www.url.com/456" title="456">
    <div class="little-div">xxx</div></a>
</div>
xxxx

我正试图把href的大部分拉出来。我可以使用下面的代码从整个页面中获取所有href。

$links = $html->find ('a');
foreach ($links as $link) 
{
    echo $link->href.'<br>';
}

但是我如何只得到div中的href&#34; big-div&#34;。 编辑: 我想我明白了。对于那些关心的人:

foreach ($html->find('div[class=big-div]') as $element) {
            $links = $element->find('a');
            foreach ($links as $link) {
                echo $link->href.'<br>';
            }
        }

2 个答案:

答案 0 :(得分:4)

documentation很有用:

$html->find(".big-div")->find('a');

然后继续获取href以及您感兴趣的其他任何属性。

编辑:以上是一般的想法。我从来没有使用过简单的HTML DOM,所以也许你需要稍微调整一下语法。尝试:

foreach($html->find('.big-div') as $bigDiv) {
   $link = $bigDiv->find('a');
   echo $link->href . '<br>';
}

或者也许:

$bigDivs = $html->find('.big-div');

foreach($bigDivs as $div) {
    $link = $div->find('a');
    echo $link->href . '<br>';
}

答案 1 :(得分:0)

快速翻转-将其放入您的foreach

$image = $html->find('.big-div')->href;