用PHP解析RSS什么都不给?
我试图用php解析rss提要,但它什么也没给我。正如您所看到的,我正在尝试回显$doc和$itemRSS数组,但它没有给我任何东西,也没有给我成功!当数组中的项0从未到达时 如果有人能说你想过“愚蠢的错误”,我会很激动的,所以请你考虑我这个问题。谢谢大家!用PHP解析RSS什么都不给?,php,parsing,rss,Php,Parsing,Rss,我试图用php解析rss提要,但它什么也没给我。正如您所看到的,我正在尝试回显$doc和$itemRSS数组,但它没有给我任何东西,也没有给我成功!当数组中的项0从未到达时 如果有人能说你想过“愚蠢的错误”,我会很激动的,所以请你考虑我这个问题。谢谢大家! $doc = new DOMDocument(); $doc->load('http://pipes.yahoo.com/pipes/pipe.run?_id=566903fd393811762dc74aadc701badd&a
$doc = new DOMDocument();
$doc->load('http://pipes.yahoo.com/pipes/pipe.run?_id=566903fd393811762dc74aadc701badd&_render=rss');
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$itemRSS = array (
'guid' => $node->getElementsByTagName('guid')->item(0)->nodeValue
);
array_push($arrFeeds, $itemRSS);
}
if ($itemRSS[0] != NULL) {
echo 'Success!';
}
echo $itemRSS;
echo $doc;
我的意思是这一页完全是空白的。没有错误,什么都没有
更新:
很明显,我的网络主机已禁用allow\u url\u fopen,因此我必须找到另一种方法来实现这一点。叹气将这些行添加到脚本末尾并检查
var_dump($itemRSS);
var_dump($arrFeeds);
var_dump($doc);
问题是知道您没有正确显示信息。脚本没有问题,只是尝试回显一个对象和一个数组,打印\r$arrFeeds。您可以看到所有内容。如其他答案中所述,您做了一些错误的事情,例如尝试回显数组和对象。出于某种原因,您在$arrFeeds中也没有得到任何结果,尽管您应该这样做 一种更简单的方法是将提要的呈现方法更改为JSON: 然后,您可以使用json_decode获取所有项目的数组:
$contents = json_decode(file_get_contents('http://pipes.yahoo.com/pipes/pipe.run?_id=566903fd393811762dc74aadc701badd&_render=json'));
foreach($contents['items'] as $item) {
// use $item['title'], $item['description'] etc...
}
注意:只能回显字符串、整数等,而不能回显数组或对象等结构化数据
为了简化操作,您可以在浏览器中打开该URL并分析JSON内容@-然后您将看到数组的结构
JSON是一种更容易与IMO合作的格式
编辑:
由于禁用了文件获取内容,您可以使用cURL,它应该安装在大多数服务器上,尤其是禁用了allow\u url\u fopen时:
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
我总是发现SimpleXML更易于使用,这给了我:NULL array0{}objectDOMDocument1 0{}。这意味着什么?意味着你必须检查你的代码才能得到你想要的。你想做什么?我想获取rss提要,将其与我存储的内容进行比较,看看是否有新的内容,然后执行X:我会将GUID存储在mySQL数据库中,但这段代码我可以自己编写。谢谢。我首先尝试使用json,但无法使其工作。我习惯于使用objective-c,php让我有点困惑;我得到空值。应该发生吗?不,不应该发生。检查您的错误日志,可能会禁用外部链接的文件\u get\u内容。您知道这是什么吗?我的网络主机已停用allow\u url\u fopen。。。必须找到另一种方法。谢谢你的帮助。是的,我也是这么想的。编辑答案,添加有关如何解决该问题的详细信息。