使用此代码:
$url = 'https://www.xxxxxxx.com/api/v1/phone/?apikey=xxxxxxxxxx&id='.$id;
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept: application/json'
));
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($cURL);
curl_close($cURL);
echo $result;
var_dump ($result);
var_dump(json_decode($result, true));
我明白了:
{“电话”:“0 811 228 338”}
string(32)“{”telephone“:”X XXX XXX XXX“}”
NULL
我不明白为什么json_decode在这里不起作用?
感谢您的帮助
答案 0 :(得分:1)
我得到的小信息我相信它是一个json格式问题。
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>
json引号无效 http://php.net/manual/en/function.json-decode.php
在某个验证程序中尝试使用http://jsonlint.com/
答案 1 :(得分:1)
解决方案是响应是UTF-8而不是UTF-8(SANS BOM)。 这意味着在字符串的开头有一个看不见的caractere(U + FEFF)。
解决方案:$result = substr($result, 3);
感谢您的帮助