加载多个XML提要 - PHP

时间:2012-06-13 14:17:56

标签: php xml

我有一个php文件设置来提取 ONE XML数据Feed,我想要做的是加载最多4个Feed,如果可能的话,也选择一个随机项。然后将其解析为jQuery News Ticker。

我目前的PHP如下......

<?php
$feed = new DOMDocument();
$feed->load('/feed');
$json = array();

$json['title'] = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
$json['description'] = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('description')->item(0)->firstChild->nodeValue;
$json['link'] = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('link')->item(0)->firstChild->nodeValue;

$items = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');

$json['item'] = array();
$i = 0;


foreach($items as $item) {

   $title = $item->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
   $description = $item->getElementsByTagName('description')->item(0)->firstChild->nodeValue;
   $pubDate = $item->getElementsByTagName('pubDate')->item(0)->firstChild->nodeValue;
   $guid = $item->getElementsByTagName('guid')->item(0)->firstChild->nodeValue;

   $json['item'][$i++]['title'] = $title;
   $json['item'][$i++]['description'] = $description;
   $json['item'][$i++]['pubdate'] = $pubDate;
   $json['item'][$i++]['guid'] = $guid; 

   echo '<li class="news-item"><a href="#">'.$title.'</a></li>';

}


//echo json_encode($json);


?>

如何修改此项以将多个Feed加载到文件中?

提前致谢

2 个答案:

答案 0 :(得分:1)

执行此操作的最简单方法是围绕您拥有的代码包装另一个循环。这不是最干净的方式,但可能就足够了。

总的来说,IMO,首先要学习语言的基础知识总是有益的。例如。 PHP manual on foreach

这大致是循环需要的样子:

$my_feeds = array("http://.....", "http://.....", "http://.....");

foreach ($my_feeds as $my_feed)
 {
  // This is where your code starts
  $feed = new DOMDocument();
  $feed->load($my_feed); <--------------- notice the variable
  $json = array();

 ... and the rest of the code

 }

这将遍历$my_feeds中的所有网址,打开RSS源,从中获取所有项目,然后输出。

答案 1 :(得分:0)

如果我正确地阅读你的问题,你可能想要做的是将你的代码变成一个函数,然后你将在每个url的foreach循环中运行(你可以存储在一个数组或其他数据结构中) )。

编辑:如果您对功能知之甚少,本教程部分可能会对您有所帮助。 http://devzone.zend.com/9/php-101-part-6-functionally-yours/