我有一个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"; }
答案 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";
}