Получение количества подписчиков feedburner? - PullRequest
0 голосов
/ 25 апреля 2010

В настоящее время я использую этот код для получения количества подписчиков на мой блог:

$whaturl="http://api.feedburner.com/awareness/1.0/GetFeedData?uri=http://feeds.feedburner.com/DesignDeluge"; 
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $whaturl);
$data = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($data); 
$fb = $xml->feed->entry['circulation'];

но когда я передаю $ fb, он не работает (весь файл, на который выводится $ fb, не появляется). Любые идеи о том, почему это не работает?

1 Ответ

1 голос
/ 25 апреля 2010

Если вы посмотрите на $data, прежде чем пытаться загрузить его с SimpleXMLElement, вы увидите, что он содержит следующую часть HTML-кода:

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://feedburner.google.com/awareness/1.0/GetFeedData?uri=http://feeds.feedburner.com/DesignDeluge">here</A>.
</BODY></HTML>

Итак, вы нигде не найдете того, что ищете; -)


Решением может быть использование опции CURLOPT_FOLLOWLOCATION (см. curl_setopt) , поэтому curl следует за перенаправлениями ...

... Но, похоже, это тоже не работает.


На самом деле, когда я пытаюсь загрузить URL, указанный в части кода HTML, которую я разместил ранее:

http://feedburner.google.com/awareness/1.0/GetFeedData?uri=http://feeds.feedburner.com/DesignDeluge

В качестве возврата я получаю только следующий XML:

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
    <err code="2" msg="This feed does not permit Awareness API access" />
</rsp>


Вы уверены, что используете правильные URL / каналы?

...