2012-12-01 179 views
-1

我想從這個鏈接捲曲JSON:http://web-app.usc.edu/ws/soc/api/departments/20131PHP:&的file_get_contents嫋嫋不工作(但終端捲曲一樣)

我已經試過:

的file_get_contents:

$json = file_get_contents("http://web-app.usc.edu/ws/soc/api/departments/20131"); 

curl:

$ch = curl_init('http://web-app.usc.edu/ws/soc/api/departments/20131'); 
$response = curl_exec($ch); 

但是file_get_contents「無法打開流」和curl只是似乎掛起。有趣的是,在瀏覽器中curl-url工作得很好。

怎麼回事?

回答

2

Php設置可以(也應該)禁止在URL上使用調用fopen的file_get_contents。見http://www.php.net/manual/en/filesystem.configuration.php

Curl是抓取文件的正確方法。我認爲你的問題可能是一個缺少捲曲選項。嘗試將CURLOPT_RETURNTRANSFER設置爲true。如果您不這樣做,則傳輸將直接輸出,而不是呼叫的返回值,即curl_exec()

$ch = curl_init('http://web-app.usc.edu/ws/soc/api/departments/20131'); 
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , true); 
$response = curl_exec($ch); 

另一個RTM鏈接:http://www.php.net/manual/en/function.curl-setopt.php

+0

您可以加入什麼CURLOPT_RETURNTRANSFER意味着快速的解釋?未來的訪客會喜歡在一個地方有所有的相關信息 – akatakritos

+0

你明白了,@akatakritos –

+0

很多事情都是可能的。 :)但是,如果您知道我的解決方案不起作用,您應該編輯您的問題以反映它。你也可以發佈錯誤或從您的PHP腳本訪問日誌? –