Я пытаюсь отобразить много подписчиков в Твиттере, использующих PHP, учитывая имя пользователя. Мой код похож на это:
function tweet_count() {
$name = get_option('ws_twit');
$twit = file_get_contents('http://twitter.com/users/show/'.$name.'.xml');
$begin = '<followers_count>'; $end = '</followers_count>';
$page = $twit;
$parts = explode($begin,$page);
$page = $parts[1];
$parts = explode($end,$page);
$tcount = $parts[0];
if($tcount == '') { $tcount = '0'; }
echo $tcount;
}
Это обычно работает... кроме тех случаев, когда это не делает. Большую часть времени это выводит ошибку:
не удалось открыть поток: Запрос HTTP перестал работать! HTTP/1.1 400 Плохих Запросов в [имени файла] на строке 8
Строка 8: $twit = file_get_contents('http://twitter.com/users/show/'.$name.'.xml');
Я попробовал жесткое кодирование имя пользователя, но эффект является тем же. Я задаюсь вопросом, хорошо ли этот код, так как он ДЕЙСТВИТЕЛЬНО иногда работает. Сначала я предположил, что, возможно, это была ошибка Твиттера, но это происходит путь к часто для имения место.
Спасибо за помощь!
Скорее всего, из-за того, что твиттер сильно упал!
Но вы также можете попробовать следующее.
$name = get_option('ws_twit');
$twit = file_get_contents('http://twitter.com/users/show/'.$name.'.xml');
preg_match_all("|<followers_count>(.*)</followers_count>|U",$twit,$followers);
$tcount = $followers[1];
echo (!empty($tcount)) ? $tcount : 0;
ОБНОВЛЕНИЕ Я просто несколько раз пытался обновить URL-адрес в браузере .. http://twitter.com/users/show/TWITTERNAME.xml , и некоторые работали, но я получил ошибку Bad Request, это deff twitter .
Я согласен с Lizard в том, что Твиттер сильно не работает, и это может вызвать ваше непоследовательное поведение. Я использовал структуру вызовов, аналогичную вашей, для связи с Twitter, но вместо /users/show/name.xml я использовал этот URL: http://twitter.com/statuses/user_timeline.xml?user_id = ####### Не уверен, поможет ли это, но попробовать стоит. Может быть, это будет надежнее, даже если он когда-нибудь выйдет из строя.
(Кроме того, Twitter сегодня был особенно плохим: http://dl.dropbox.com/u/2320369/twitter_problems.png )