Php simplexml\u加载\u文件返回alexa rank的空对象
我试图获得任何领域的alexa排名,我发现一个功能,它可以工作,但如果一个网站没有在alexa注册,它将返回空对象,然后我的网站将停止加载 Alexa函数:Php simplexml\u加载\u文件返回alexa rank的空对象,php,Php,我试图获得任何领域的alexa排名,我发现一个功能,它可以工作,但如果一个网站没有在alexa注册,它将返回空对象,然后我的网站将停止加载 Alexa函数: <?php /** * Get Popularity Text of a Domain via Alexa XML Data * * @return string|FALSE text or FALSE on error */ function alexa_get_rank($domain) { $alexa = "h
<?php
/**
* Get Popularity Text of a Domain via Alexa XML Data
*
* @return string|FALSE text or FALSE on error
*/
function alexa_get_rank($domain)
{
$alexa = "http://data.alexa.com/data?cli=10&dat=s&url=%s";
$request_url = sprintf($alexa, urlencode($domain));
$xml = simplexml_load_file($request_url);
if (!$xml) {
return FALSE;
}
$nodeAttributes = $xml->SD[1]->POPULARITY->attributes();
$text = (int) $nodeAttributes['TEXT'];
return $text;
}
这个
换成这个
if (!isset($xml->SD[1])) {
return FALSE;
}
它对所有域返回0:(为什么对所有域都返回?我尝试了echo alexa\u get\u rank('http://google.com')
它返回2
但不是0如果我使用你的代码,它返回空对象。我刚才试了很多次。好的,如果没有“www”的域将返回空对象。可以帮我一下吗?例如,我写echo alexa_get_rank('http://google.com')
此输出2
。您可以看到,我使用URL而不使用www
if (!$xml) {
return FALSE;
}
if (!isset($xml->SD[1])) {
return FALSE;
}