當我解析一些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