获得json内容的问题

时间:2011-06-09 05:26:25

标签: php json api curl file-get-contents

您好我正在尝试从json文件中获取内容,但我不能为此做很多麻烦,我的代码是:

<?PHP

$url = 'http://www.taringa.net/api/efc6d445985d5c38c5515dfba8b74e74/json/Users-GetUserData/apptastico';

$ch = curl_init();
$timeout = 0; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch); // take out the spaces of curl statement!!
curl_close($ch);

var_dump($file_contents);  

?>

如果我把地址放在浏览器中我得到的内容没有任何问题,但如果我尝试在PHP或其他代码上得到它我有问题,我该怎么办?我尝试使用file_get_contents();我也没有得到任何东西,只有问题和问题

2 个答案:

答案 0 :(得分:0)

你在php.net上读过一些关于cURL的内容吗?

这是它的工作原理:

来自php.net:

$url = 'http://www.taringa.net/api/efc6d445985d5c38c5515dfba8b74e74/json/Users-GetUserData/apptastico';  

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, FALSE); // set to true to see the header 
curl_setopt($ch, CURLOPT_NOBODY, FALSE); // show the body 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$content = curl_exec($ch); 
curl_close($ch); 

echo $content

答案 1 :(得分:0)

看起来他们正在检查用户代理并阻止PHP。在使用file_get_contents之前设置它:

ini_set('user_agent', 'Mozilla/5.0 (Windows NT 5.2; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');

如果他们正在检查用户代理,他们可能会这样做,以防止人们做这种事情。