使用cURL获取RSS - 在DomDocument对象中将textContent清空

时间:2013-11-29 09:16:27

标签: php curl rss

我正在开发一个多rss阅读器,它基本上从博客和社交媒体中导入Feed并将它们放在时间轴中。全球社交活动报告:)

我无法在我的网络服务器上使用直接网址,因此我不得不更改脚本以检索每个卷曲的RSS Feed。

奇怪的是,当我使用load()方法在本地打开rss-feed时,我收到了正确的Object。但是当我使用cURL打开它时,对象中的textContent为空。为什么这样?

这里是抓取xml-data的代码

foreach ($FeedUrls as $FeedUrl) {
    $rss = new DOMDocument();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $FeedUrl['url']);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $rsscurl = curl_exec($ch);
    curl_close($ch);
    $rss->load($rsscurl);

我的curl_error()

输出没有卷曲错误

我注意到,这两个物体看起来略有不同。在

不使用cURL时,

documentURI baseURI 将被填充。但是没有cURL错误?

如果我打印$ rsscurl,我会看到带有来自rss feed的博客帖子的xml代码。但是如果我在DOMDocument加载后打印$ rss对象,我会看到没有内容的对象。 ???

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

Aww我发现了问题

使用curl加载rss feed时,我必须在DOMDocument中使用 loadXML()方法而不是load()!!

load()从文件加载,loadXML()从字符串加载,所以cURL返回一个字符串,而不是文件!

我不完全理解为什么我没有在这个

上得到任何错误