2011-06-09 118 views
0

嗨,我想從一個JSON文件中的內容,但我不能,我有許多麻煩做到這一點,我的代碼是:問題越來越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

定義術語_issues_ – 2011-06-09 05:30:12

+0

您是否收到一些錯誤? – Ibu 2011-06-09 05:35:03

+0

是的,我得到了:403 - 禁止 – ozonostudio 2011-06-13 18:47:07

回答

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'); 

如果他們正在檢查用戶代理,他們可能會這麼做,以防止有人做這種事情。

+0

真棒!這解決了我的問題 – ozonostudio 2011-06-13 18:52:21

0

你讀了一點關於cURL php.net?

這裏是如何工作的:

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 
+0

是的,我已經讀過,但我仍然得到一個「403 - 禁止」的錯誤 – ozonostudio 2011-06-13 18:46:51

+0

調試嘗試使用file_get_contents($ url);回聲它 – Ibu 2011-06-13 18:56:23

+0

你應該看看API的文檔,他們必須阻止一些電話 – Ibu 2011-06-13 19:05:16