2012-12-01 75 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脚本访问日志? –