嗨,我正试图从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();也是,但我什么都没得到,只有问题和问题
看起来他们正在检查用户代理并阻止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');
如果他们检查用户代理,他们这样做可能是为了防止人们做这种事情。
你读过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