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

时间:2013-09-15 14:11:25

标签: php

我有一个alexa排名检查脚本。有时候我会收到这个错误;

  

PHP致命错误:在a上调用成员函数attributes()   第14行/home/trackman/public_html/scan.php中的非对象

在我的脚本上,第13行和第14行是

$xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url);
$rank=(int)$xml->SD[1]->POPULARITY->attributes()->TEXT;

我试过这个,但问题仍然存在。解决这个问题的正确方法是什么?

if (strlen($rank)<1) { $rank = "unknown"; }

1 个答案:

答案 0 :(得分:1)

如果指定的网址有效,则$xml->SD[1]->POPULARITY将没有数据。所以,你必须在使用之前检查它。

if($url){
    $xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url);

    if($xml  &&  $xml->SD[1]->POPULARITY ){
        $rank=(int)$xml->SD[1]->POPULARITY->attributes()->TEXT;
    }else{
        echo "Not Valid XML";
    }
}else{
    echo "URL NOT Found";
}