php致命错误:在非对象上调用成员函数children()

时间:2012-11-22 08:38:07

标签: php

努力使代码更加和谐。但我得到致命错误。我不知道如何解决这个问题。任何帮助都会很感激。该行的错误是:$counts = $sxml-> children('http://a9.com/-/spec/opensearchrss/1.0/');

// generate feed URL
      $feedURL = "http://gdata.youtube.com/feeds/api/videos/-/{$q}
      ?orderby=viewCount&max-results={$i}";

      // read feed into SimpleXML object
      $sxml = simplexml_load_file($feedURL);

      // get summary counts from opensearch: namespace
      $counts = $sxml-> children('http://a9.com/-/spec/opensearchrss/1.0/');
      //$counts = $sxml-> children('http://www.opensearch.org/Specifications/OpenSearch/1.1');

      $total = $counts->totalResults;
      $startOffset = $counts->startIndex; 
      $endOffset = ($startOffset-1) + $counts->itemsPerPage;

2 个答案:

答案 0 :(得分:3)

simplexml_load_file失败了。失败时返回false(无对象)。

您的服务器无法访问该URL,或者它返回的XML无效。

来自Manual

  

返回类SimpleXMLElement的对象,其属性包含XML文档中保存的数据,或者失败时为FALSE。

答案 1 :(得分:1)

为避免出现此错误,您应使用以下条件:

if(false !== $sxml){
      //your code
}