php - 如何使用简单的 HTML DOM 解析器获取 <a> 标签中的 url?

标签 php html dom domparser

<ul id="PrList" class="v2">
    <li class="tools">

    </li>
    <li class="firstRow">
        <div class="i">
            <a href="www.google.com" title="Google" class="nC">
                <img src="something">
            </a>
        </div>
    </li>
</ul>

如何获取 href <div class="i"> 中的属性?

我试过了-

$html = file_get_html($link);
$urls = [];
foreach($html->find('.i') as $element) {
   $url = $element->find('.nC')->href;
   if (!in_array($url, $urls)) {
       echo $url . "<br/>";
       $urls[] = $url;
   }
}

但我收到一个错误:-

Notice: Trying to get property of non-object

我尝试过:-

$html = file_get_html($link);
$html = $html->find('div.i');
$html -> find('a',0)->href; 
$echo $html;

但我再次收到错误:-

Fatal error: Call to a member function find() on array

最佳答案

你需要像下面这样做:-

$html = file_get_html($link);
$urls = [];
foreach($html->find('.i a') as $element) {
   $url = $element->href;
   if (!in_array($url, $urls)) {
       echo $url . "<br/>";
       $urls[] = $url;
   }
}
echo "<pre/>";print_r($urls);

关于php - 如何使用简单的 HTML DOM 解析器获取 <a> 标签中的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45780576/

相关文章:

php - 使用 PHP 排序

javascript - 如何在没有jquery的情况下创建元素后执行javascript代码?

css - 自举 |两列一列 16 :9 video and some text

java - HTMLDocument 迭代器跳过标签

JavaScript 可在本地主机上运行,​​但不能在实时站点上运行

php - "Transfer"对象属性到不同类的对象

javascript - 使用javascript定位图像

javascript - Mootools getComputedSize 在 Chrome 中不起作用

javascript - AngularJS : invoking optional nested directive on template sub-element

php - 更改循环中的最后一项输出 (ACF)