谢谢!
在php中,我想知道Twitter用户是否存在。 为此,我尝试恢复网址的内容:
$json = file_get_contents("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=".$_GET['search']);
$jsonObject = json_decode($json);
其中$ _GET ['search'] =是在URL中传递的用户的名称。
但问题是,如果有人提供不存在的用户名,我会收到错误。
在php.net上,他们说如果出现错误,file_get_contents会返回false。
我试图在一个条件下做:
if(file_get_contents("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=".$_GET['search']) != false){
// do my stuff
}
else{
// say that this username don't exists
}
但是当我尝试这段代码时,我得到了一个大橙色警告代码,上面写着:
Warning: file_get_contents(http://api.twitter.com/1/statuses/user_timeline.json?screen_name=A_Wrong_User_Name) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP
所以我可以删除错误,只检查Twitter用户是否存在。 我存在,我想用file_get_contents获取页面内容,如果没有,我想显示用户不存在。
感谢您的帮助!
答案 0 :(得分:0)
您应该使用CURL而不是file_get_contents
:
<?php
$username = "user";
$url="http://api.twitter.com/1/users/show/".$username.".xml";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
$header = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if( $header == "404" )
{
//it does not exist
}else{
//it exists
}