使用PHP中的Google RSS feed xml获取前9个元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PHP中的Google RSS feed xml获取前9个元素相关的知识,希望对你有一定的参考价值。

我目前正在使用Google RSS Feed。我收到了这个XML响应。

<rss version="2.0">
<channel>
<generator>NFE/1.0</generator>
<title>blockchain - Google News</title>
<link>...</link>
<language>en</language>
<webMaster>news-feedback@google.com</webMaster>
<copyright>&copy;2017 Google</copyright>
<pubDate>Fri, 17 Nov 2017 09:41:26 GMT</pubDate>
<lastBuildDate>Fri, 17 Nov 2017 09:41:26 GMT</lastBuildDate>
<image>...</image>
<description>Google News</description>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
</channel>
</rss>

我正在使用这个foreach()循环遍历所有项目:

$rss = simplexml_load_file('https://news.google.com/news/rss/headlines/section/q/blockchain/blockchain?ned=us&hl=en&gl=US');

foreach ($rss->channel->item as $item) {
    echo $item->title."<br/>";
    echo $item->link."<br/>";
    echo $item->pubDate."<br/>";
}

但是这个foreach给我带来了所有物品。

如何从这个XML中只获得前9项?

答案

简单快速的解决方案: -

$i = 0;
foreach ($rss->channel->item as $item) {
  if($i<9){
    echo $item->title."<br/>";
    echo $item->link."<br/>";
    echo $item->pubDate."<br/>";
  }
 $i++;
}

更好的解决方案是: -

$array = array_slice($rss->channel->item,0,9);

foreach ($array as $item) {
  echo $item->title."<br/>";
  echo $item->link."<br/>";
  echo $item->pubDate."<br/>";
}

参考: - PHP manual: array_slice

另一答案

好吧,我找到了答案:

   $i = 0;

   foreach ($rss->channel->item as $item) {
      $i++;

      echo $item->title."<br/>";
      echo $item->link."<br/>";
      echo $item->pubDate."<br/>";


      if($i == 10) break;
   } 

以上是关于使用PHP中的Google RSS feed xml获取前9个元素的主要内容,如果未能解决你的问题,请参考以下文章

Google新闻RSS Feed的网址格式

php RSS Feed中的偏移日期戳

php WordPress :: RSS Feed中的特色图片MailChimp

javascript Google Analytics RSS Feed跟踪

当rss feed改变php时如何播放声音

Twitter-打印用户的最新tweet(摘自PHP中的RSS提要和linkifies链接)