当我解析一些html并获取一个html元素数组时,我想获得第一个元素。下面是代码:Simplehtmldom获取第一个元素
$url = getLink($good);
$html = file_get_html($url);
$offers = array_filter($html->find('div.b-offers'), function($node) {
return $node->class == 'b-offers'; // If this only class is set
});
// $offer = $offers[0]; // <---- look here
foreach ($offers as $offer) {
$price = $offer->find('span.b-prices__num', 0)->innertext();
break;
}
它,如果我使用的foreach,并立即中断才有效。但为什么$ offer = $ offer [0]不起作用?如果我这样写,这里会出现错误:
$price = $offer->find('span.b-prices__num', 0)->innertext();
就像在非对象上调用find()函数一样。
另外一个问题是:是否有可能重写代码,我使用array_filter函数来获取只有一个类“b-offers”的元素?我记得我试着像
$html->find('div[class="b-offers"]')
或种类的一些不同的方法,但对我来说
啊确实如此。谢谢指出! – Victor