我正在尝试从包含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源,结果相同。
答案 0 :(得分:2)
我现在看到的问题是......如果你访问像/r/programming/这样的子reddit,并转到“新”标签查看最新的提交,有两种排序选项。第一个选项是“上升”,仅显示即将到来的条目,备用排序顺序为“新”。
由于我在浏览器中选择了“新”排序顺序,因此保存了一个cookie并在之后用作默认排序顺序。但是,通过代码访问页面仍然使用默认排序顺序,该顺序返回了可变数量的结果。
我通过将排序顺序查询字符串附加到请求网址解决了该问题:http://www.reddit.com/r/programming/new/.rss?sort=new
答案 1 :(得分:0)
如果在加载Feed时出现问题,可能会发出某种警告。
现在,reddit Feed的示例代码显示它有14个项目。该Feed中的商品数量不是固定的。所以问题是您的本地副本与您从reddit加载的副本不同。