Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用cURL从URL获取JSON数据_Php_Json_Curl - Fatal编程技术网

Php 使用cURL从URL获取JSON数据

Php 使用cURL从URL获取JSON数据,php,json,curl,Php,Json,Curl,我试图从URL读取JSON,但我无法获取cURL来检索数据 我有以下几点: $curl = curl_init($url); $options = array( CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER =>

我试图从URL读取JSON,但我无法获取cURL来检索数据

我有以下几点:

$curl = curl_init($url);

$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 5,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER =>array('Accept: application/json', "Content-type: application/json"),
CURLOPT_FAILONERROR => FALSE,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
);

curl_setopt_array($curl, $options);

$response = curl_exec($curl);
print "curl_error returned: ".curl_error($curl)."\n <br />\n";
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
print "Status of HTTP: ".$status."\n";
$response = json_decode($response);
print_r($response)
我正在读取的JSON数据总共大约有300个字符,并且没有格式化,这有关系吗?我所说的未格式化是指JSON都在一行上

我尝试使用fopen和file_get_内容,但同样的操作没有返回任何内容

我遇到的另一个问题是连接所需的时间。当我在浏览器中访问URL时,它会立即呈现JSON,但当我使用cURL或file_get_内容时,需要很长时间才能完成。这就是我特别限制超时的原因。如果我不限制超时,页面将在大约2分钟后呈现,结果与超时相同

我不知道我现在怎么能读这个网址。为了描述URL内容,它实际上只是一行上呈现的JSON数据,它不是一个大文件,实际上相当小。如果重要的话,URL中会有一些“获取”信息

谢谢你的帮助


有人建议这可能是防火墙/连接问题,但从我的角度来看,我能够向其他网站发送请求,并准确地检查它们的状态代码。在URL端,我可以通过浏览器访问它…?

尝试设置用户代理CURLOPT_USERAGENT,'Mozilla/5.0 Windows;Uwindowsnt5.1;恩美;rv:1.8.1.13 Gecko/20080311 Firefox/2.0.0.13“我添加了CURLOPT_USERAGENT=>”Mozilla/5.0 Windows;Uwindowsnt5.1;恩美;rv:1.8.1.13 Gecko/20080311 Firefox/2.0.0.13',对于选项数组,它对状态或错误消息的输出没有任何影响。这看起来非常像服务器/防火墙/连接问题。Pekka可能是正确的,我将检查是否有某种类型的问题阻止我。
curl_error returned: couldn't connect to host
Status of HTTP: 0