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

elg*_*o75 1 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
Run Code Online (Sandbox Code Playgroud)

我正在尝试将href排除在big-div外。我可以使用以下代码获取整个页面中所有的href。

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

但是,如何在div“ big-div”中仅获取href的内容。编辑:我想我明白了。对于那些关心:

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

dur*_*tti 5

文档非常有用:

$html->find(".big-div")->find('a');
Run Code Online (Sandbox Code Playgroud)

然后继续获取href和您感兴趣的其他属性。

编辑:以上将是一般的想法。我从未使用过简单HTML DOM,因此也许您需要对语法进行一些调整。尝试:

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

也许:

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

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

  • 当人们可以为您编写代码时谁需要文档:p (3认同)