php - 淘宝手机号归属地api

 ar_wen2402851455 发布于 2022-11-17 01:07

https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13001631234
使用这个接口查询归属地信息后php不能够解析json字符串
php

    $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);

3 个回答
  • 对于php来说jsonpjson,并非直接取后就完事了。

    下面是官方文档的说明:
    <?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
    
    ?>

    官方文档入口json-decode

    2022-11-17 02:21 回答

  • 建议换个接口,或者是请求缺少某参数,返回的不是json数据

    2022-11-17 02:21 回答
  • -已解决

    通过json_last_error()发现是JSON_ERROR_SYNTAX: ' - Syntax error, malformed JSON'

    后来将key接用""扩了起来就可以了

        $res = trim(explode('=',$res)[1]);
        $res = iconv('gbk','utf-8', $res);
        $res = str_replace("'",'"', $res);
        $res = preg_replace('/(\w+):/is', '"$1":', $res);
    2022-11-17 02:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有