我正在尝试阅读有25个项目的RSS提要中的数据。当我通过HTTP要求RSS文件时,它说只有20个项目。

function test($location)
{
    $doc = new DomDocument();
    $doc->load($location);
    $items = $doc->getElementsByTagName('item');
    return $items->length;
}

// Prints 20
echo test('http://www.reddit.com/r/programming/new/.rss?after=t3_');

// Prints 25
echo test('programming.xml');

我也尝试了其他子列表的RSS提要,并以相同的结果。

有帮助吗?

解决方案

我明白了现在的问题...如果您访问一个子雷迪特 /r/编程/ 然后转到“新”选项卡以查看最新的提交,有两个排序选项。第一个选项是“上升”,它仅显示新兴的条目,替代排序顺序是“新”。

由于我在浏览器中选择了“新”排序订单,因此保存了一个cookie,然后用作默认排序顺序。但是,通过代码访问页面仍在使用默认排序顺序,该顺序返回了可变量的结果。

我通过将排序订单查询字符串附加到请求URL来解决问题: http://www.reddit.com/r/programming/new/.rss?sort=new

其他提示

如果它在加载供稿时遇到问题,它可能会发出某种警告。

目前,您的Reddit提要的示例代码表明它有14个项目。该提要中的项目数量不是恒定的。因此,问题在于,您的本地副本是不同的,即您从Reddit加载的副本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top