我正在开发一个多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对象,我会看到没有内容的对象。 ???
我在这里缺少什么?
答案 0 :(得分:1)
Aww我发现了问题
使用curl加载rss feed时,我必须在DOMDocument中使用 loadXML()方法而不是load()!!
load()从文件加载,loadXML()从字符串加载,所以cURL返回一个字符串,而不是文件!
我不完全理解为什么我没有在这个
上得到任何错误