$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
var_dump($output);
$json_array = json_decode($output, true);
var_dump(curl_error($ch));
curl_close($ch);
var_dump($json_array);
VARDUMP for $ output
string(267)“HTTP / 1.1 200 OK日期:星期五,2013年3月1日14:16:57 GMT服务器:Apache / 2.4.3(Win32)OpenSSL / 1.0.1c PHP / 5.4.7 X-Powered- By:PHP / 5.4.7 cache-control:no-cache x-debug-token:5130b85a178bd Transfer-Encoding:chunked Content-Type:application / json {“name”:“manoj”}“
curl_error($ ch)的VARDUMP
string(0)“”
$ json_array的VARDUMP
NULL
答案 0 :(得分:7)
如果无法解码json,则返回NULL
您不希望在curl_exec的正文中返回标题,因此您需要:
curl_setopt($ch, CURLOPT_HEADER, false)
答案 1 :(得分:2)
如果由于任何原因您必须维护CURLOPT_HEADER选项,您可以使用以下内容:
$output = curl_exec($ch);
$json_data = mb_substr($output, curl_getinfo($ch, CURLINFO_HEADER_SIZE));
$data = json_decode($json_data);
您可以使用CURLOPT_HEADER选项检查返回代码200,404等...
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);