我從XML提要讀取數據如下:PHP RSS閱讀器效率
$data=file_get_contents("mydata.rss");
$data=simplexml_load_string($data);
foreach($data->channel->item as $item){
$articles[] = array(
'description' => (string)$item->description,
'link' => (string)$item->link,
'pubDate' => (string)$item->pubDate,);
}
的問題是,飼料是非常長,也許100個項目。我只想讀第一個10.我可以通過手動設置一個計數器然後在foreach循環中使用if語句來解決這個問題,但是我不認爲這是最好的方法,因爲整個feed仍然被讀取,因此不必要額外開銷。
什麼是實現這一目標,而不必讀取整個飼料的最有效的方法是什麼?
在此先感謝...
如果您不讀取/解析整個飼料,它將是無效的xml,並導致simplexml失敗。除此之外,您可以將foreach更改爲for循環,但計數器之間的差異很小。也許在哪裏你得到的飼料接受一個參數來限制條目的數量。 –
您可以添加maxlen,但您必須猜測該值,然後使用破損的xml Feed。也許你正在檢索飼料經常?你是否可以每天做(笨蛋)並將其存儲在本地? – 2013-06-19 22:25:30
你可以使用舊的基於expat的xml解析器給你一個事件驅動的訪問xml - http://www.php.net/manual/en/book.xml.php – Orangepill