Я пытаюсь получить ранг alexa для любого домена, я нашел одну функцию, которая работает, но если сайт, не зарегистрированный на alexa, он вернет пустой объект, а затем мой сайт перестанет загружаться.simplexml_load_file возвращает пустой объект для alexa rank
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 = "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;
}
EX: http://data.alexa.com/data?cli=10&dat=snbamz&url=anythinghere123.com
результат:
<ALEXA VER="0.9" URL="anythinghere123.com/" HOME="0" AID="VruOh1YRg600iz" IDN="anythinghere123.com/">
<RLS PREFIX="http://" more="0"></RLS>
<SD TITLE="A" FLAGS="" HOST="anythinghere123.com"></SD>
</ALEXA>
Я попытался дать префикс пространства имен, но он возвращает 0, на все время (все домены).
как решить эту проблему? Я хотел бы поставить тИЦ 0 для любого веб-сайта, ни зарегистрированного
она возвращает 0 для всех доменов :( –
Почему для всех доменов? Я try 'echo alexa_get_rank ('http://google.com');' он возвращает '2', но не 0 – Winston
, если я использую ваш код, он возвращает пустой объект. Я пробовал это много раз только сейчас. –