我从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