Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP解析RSS什么都不给?_Php_Parsing_Rss - Fatal编程技术网

用PHP解析RSS什么都不给?

用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

我试图用php解析rss提要,但它什么也没给我。正如您所看到的,我正在尝试回显$doc和$itemRSS数组,但它没有给我任何东西,也没有给我成功!当数组中的项0从未到达时

如果有人能说你想过“愚蠢的错误”,我会很激动的,所以请你考虑我这个问题。谢谢大家!

  $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。。。必须找到另一种方法。谢谢你的帮助。是的,我也是这么想的。编辑答案,添加有关如何解决该问题的详细信息。