PHP中使用CURL获得快递100API接口JSON数据的文件头处理方案

PHP中使用CURL获得JSON数据的处理方案
文件:curl_init.php

header('Content-Type:text/json;charset=UTF-8');
//header("Content-type:text/html;charset=utf-8");
//http://www.php.cn/php-weizijiaocheng-393305.html
// 创建一个新cURL资源
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($ch, CURLOPT_URL, "http://www.kuaidi100.com/query?type=ems&postid=9972311155713");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$resp = curl_exec($ch);


// 关闭cURL资源,并且释放系统资源
curl_close($ch);
$resp = json_decode($resp,true);

复制源码可以直接PHP环境中测试。

  • 文件头header(‘Content-Type:text/json;charset=UTF-8’);,表明文件是json字符串,如果直接在该文件内部使用HTML处理,则无效;但是可以通过ajax调用数据;
  • header(“Content-type:text/html;charset=utf-8”);,表明文件是html类型,可以直接在改文件内部使用HTML标记语言处理;
  • http://www.kuaidi100.com/query?type=ems&postid=9972311155713,type是拼音组成的快递方式参数,postid为快递单号参数。
print_r($resp);

输入效果:
在这里插入图片描述

[data] => Array
        (
            [0] => Array
                (
                    [time] => 2019-03-23 15:30:38
                    [ftime] => 2019-03-23 15:30:38
                    [context] => [邮政宁波市万里邮政所]在 宁波 已签收,他人代收:雍城世家57幢菜鸟驿站,投递员:张兵:18157472130
                    [location] => 邮政宁波市万里邮政所
                )

            [1] => Array
                (
                    [time] => 2019-03-23 13:35:32
                    [ftime] => 2019-03-23 13:35:32
                    [context] => 【邮政宁波市万里邮政所】安排投递,投递员:张兵:18157472130
                    [location] => 邮政宁波市万里邮政所
                )

            [2] => Array
                (
                    [time] => 2019-03-23 12:55:53
                    [ftime] => 2019-03-23 12:55:53
                    [context] => 到达【邮政宁波市万里邮政所】
                    [location] => 邮政宁波市万里邮政所
                )

            [3] => Array
                (
                    [time] => 2019-03-23 12:11:58
                    [ftime] => 2019-03-23 12:11:58
                    [context] => 离开【宁波中心】,下一站【邮政宁波市万里邮政所】
                    [location] => 宁波中心
                )

            [4] => Array
                (
                    [time] => 2019-03-23 09:59:46
                    [ftime] => 2019-03-23 09:59:46
                    [context] => 到达【宁波中心】
                    [location] => 宁波中心
                )

            [5] => Array
                (
                    [time] => 2019-03-23 06:15:56
                    [ftime] => 2019-03-23 06:15:56
                    [context] => 离开【杭州二枢纽邮件处理中心】,下一站【宁波中心】(经转)
                    [location] => 杭州二枢纽邮件处理中心
                )

            [6] => Array
                (
                    [time] => 2019-03-23 04:10:16
                    [ftime] => 2019-03-23 04:10:16
                    [context] => 到达【杭州二枢纽邮件处理中心】(经转)
                    [location] => 杭州二枢纽邮件处理中心
                )

            [7] => Array
                (
                    [time] => 2019-03-21 06:42:28
                    [ftime] => 2019-03-21 06:42:28
                    [context] => 离开【邮政哈尔滨邮件转运分局江北省际车间】,下一站【杭州二枢纽邮件处理中心】
                    [location] => 邮政哈尔滨邮件转运分局江北省际车间
                )

            [8] => Array
                (
                    [time] => 2019-03-20 17:51:00
                    [ftime] => 2019-03-20 17:51:00
                    [context] => 到达【邮政哈尔滨邮件转运分局江北省际车间】
                    [location] => 邮政哈尔滨邮件转运分局江北省际车间
                )

            [9] => Array
                (
                    [time] => 2019-03-20 15:43:46
                    [ftime] => 2019-03-20 15:43:46
                    [context] => 离开【哈市电商】,下一站【哈市松北】
                    [location] => 哈市电商
                )

            [10] => Array
                (
                    [time] => 2019-03-20 14:30:41
                    [ftime] => 2019-03-20 14:30:41
                    [context] => 哈尔滨 【哈市电商】已收件,揽投员:王锦海12333333333
                    [location] => 哈市电商
                )

        )

处理其中的data二位数据,foreach即可:

//输出json中的数据;
foreach ($resp["data"] as $key => $v) {
    echo "到达时间:".$resp["data"][$key]['time']."<br>";
    echo "处理时间:".$resp["data"][$key]['ftime']."<br>";
    echo "处理中心:".$resp["data"][$key]['context']."<br>";
    echo "到达网点:".$resp["data"][$key]['location']."<hr>";
}

如果要正常显示,选择header(“Content-type:text/html;charset=utf-8”);文件头

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值