在 PHP 中从 Google RSS 提要 xml 中获取前 9 个元素

Posted

技术标签:

【中文标题】在 PHP 中从 Google RSS 提要 xml 中获取前 9 个元素【英文标题】:Get first 9 elements from Google RSS feed xml in PHP 【发布时间】:2018-05-01 03:02:27 【问题描述】:

我目前正在使用 Google RSS 提要。我收到了这个 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 个项目?

【问题讨论】:

Google 更新了他们的新闻提要,因为在您能够向 URL 添加 num=9 参数以限制结果之前。但是,自从升级以来,此参数不起作用,因此它可能正在建设中或已弃用。 是的,我知道。这就是为什么我要找到硬编码的方式来使用它。因为我真的需要它在我的网站上。 【参考方案1】:

简单快捷的修复:-

$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

【讨论】:

【参考方案2】:

我找到了答案:

   $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 提要 xml 中获取前 9 个元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google App Script 从 Youtube 搜索中创建 RSS 提要?

在 Swift 中从 RSS 推送通知

Google Chrome 将 XML 呈现为 RSS 提要的文本

带有 PHP 的 Spotify 的 RSS 提要

Validator w3 RSS Invalid - RSS 未使用 PHP 显示提要 [重复]

解析 XML(RSS 提要)的 PHP 错误