-1

我有一个 Alexa 排名检查器脚本。有时我会收到此错误;

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

在我的脚本中,第 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"; }
4

1 回答 1

1

当给定的 URL无效时,将没有$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";
}
于 2013-09-15T14:43:17.207 回答