Maison >développement back-end >tutoriel php >淘宝手机号归属地api
https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13001631234
使用这个接口查询归属地信息后php不能够解析json字符串
php
<code> $ch = curl_init(); $url = "https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=$mobile"."&t=".time(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行HTTP请求 curl_setopt($ch, CURLOPT_URL, $url); $res = curl_exec($ch); $res = trim(explode('=',$res)[1]); $res = iconv('gbk','utf-8', $res); var_dump($res); $res = json_decode($res, true); var_dump($res);</code>
https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13001631234
使用这个接口查询归属地信息后php不能够解析json字符串
php
<code> $ch = curl_init(); $url = "https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=$mobile"."&t=".time(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行HTTP请求 curl_setopt($ch, CURLOPT_URL, $url); $res = curl_exec($ch); $res = trim(explode('=',$res)[1]); $res = iconv('gbk','utf-8', $res); var_dump($res); $res = json_decode($res, true); var_dump($res);</code>
-已解决
通过json_last_error()发现是JSON_ERROR_SYNTAX: ' - Syntax error, malformed JSON'
后来将key接用""扩了起来就可以了
<code> $res = trim(explode('=',$res)[1]); $res = iconv('gbk','utf-8', $res); $res = str_replace("'",'"', $res); $res = preg_replace('/(\w+):/is', '"$1":', $res);</code>
建议换个接口,或者是请求缺少某参数,返回的不是json数据
对于php来说jsonp
转json
,并非直接取后就完事了。
<code>下面是官方文档的说明: <?php // the following strings are valid JavaScript but not valid JSON // the name and value must be enclosed in double quotes // single quotes are not valid $bad_json = "{ 'bar': 'baz' }"; json_decode($bad_json); // null // the name must be enclosed in double quotes $bad_json = '{ bar: "baz" }'; json_decode($bad_json); // null // trailing commas are not allowed $bad_json = '{ bar: "baz", }'; json_decode($bad_json); // null ?></code>
官方文档入口json-decode