1

我正在尝试从包含 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');

我也尝试过来自其他 subreddit 的 RSS 提要,结果相同。

4

2 回答 2

2

我知道现在的问题是什么...如果您访问/r/programming/之类的子 reddit并转到“新”选项卡以查看最新提交的内容,则有两个排序选项。第一个选项是“上升”,它只显示新条目,备用排序顺序是“新”。

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

我通过将排序顺序查询字符串附加到请求 url 解决了这个问题:http://www.reddit.com/r/programming/new/.rss?sort=new

于 2009-12-14T13:19:57.457 回答
0

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

现在,您的 reddit 提要示例代码显示它有 14 个项目。该提要中的项目数不是恒定的。所以问题是您的本地副本与您从 reddit 加载的副本不同。

于 2009-12-14T03:09:39.133 回答