在使用CURL获取JSON数据后,json_decode返回一个null对象

Man*_*mar 2 php json curl

$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);
Run Code Online (Sandbox Code Playgroud)

VARDUMP为$输出

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的VARDUMP($ ch)

string(0)""

$ json_array的VARDUMP

空值

Ara*_*yan 8

如果无法解码json,则返回NULL

你不想在curl_exec的主体中返回标题,所以你需要:

curl_setopt($ch, CURLOPT_HEADER, false)
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/function.json-decode.php