我试图在给定用户名的情况下使用PHP显示一些Twitter粉丝。我的代码如下所示:
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请求失败!第8行[文件名]中的HTTP / 1.1 400错误请求
第8行是:$twit = file_get_contents('http://twitter.com/users/show/'.$name.'.xml');
我尝试用硬编码用户名,但效果是一样的。我想知道这段代码是否合适,因为它有时会起作用。首先我假设可能是Twitter错误,但事情往往就是这种情况。
感谢您的帮助!
答案 0 :(得分:2)
很可能是因为傻瓜的能力下降太多了!
但您可能还想尝试以下内容。
$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;
<强>更新强> 我刚尝试在浏览器中刷新网址几次.. http://twitter.com/users/show/TWITTERNAME.xml有些工作但是我确实收到了错误请求错误,这是deff twitter。
答案 1 :(得分:0)
我同意Lizard的说法,Twitter很多,这可能会导致你的行为不一致。我使用了类似于你的呼叫结构来与Twitter通信,但是我使用了这个URL而不是/users/show/name.xml:http://twitter.com/statuses/user_timeline.xml?user_id=#######我不确定这是否会有所帮助,但它值得一试。也许这会更可靠,即使它也有一段时间也会下降。
(此外,Twitter今天特别糟糕:http://dl.dropbox.com/u/2320369/twitter_problems.png)