php快递查询API类-支持各种快递

开发 后端 前端
php快递查询API类-支持各种快递,供大家参考、使用。
  1. <?php 
  2. /** 
  3.  *  Express.class.php           快递查询类 
  4.  * 
  5.  * @copyright           widuu 
  6.  * @license         http://www.widuu.com 
  7.  * @lastmodify          2013-6-19 
  8.  */ 
  9.  
  10. class Express { 
  11.       
  12.     private $expressname =array(); //封装了快递名称 
  13.      
  14.     function __construct(){ 
  15.         $this->expressname = $this->expressname(); 
  16.     } 
  17.      
  18.     /* 
  19.      * 采集网页内容的方法 
  20.      */ 
  21.     private function getcontent($url){ 
  22.         if(function_exists("file_get_contents")){ 
  23.             $file_contents = file_get_contents($url); 
  24.         }else
  25.             $ch = curl_init(); 
  26.             $timeout = 5; 
  27.             curl_setopt($ch, CURLOPT_URL, $url); 
  28.             curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
  29.             curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
  30.             $file_contents = curl_exec($ch); 
  31.             curl_close($ch); 
  32.         } 
  33.         return $file_contents
  34.     } 
  35.     /* 
  36.      * 获取对应名称和对应传值的方法 
  37.      */ 
  38.     private function expressname(){ 
  39.         $result = $this->getcontent("http://www.kuaidi100.com/"); 
  40.         preg_match_all("/data\-code\=\"(?P<name>\w+)\"\>\<span\>(?P<title>.*)\<\/span>/iU",$result,$data); 
  41.         $name = array(); 
  42.         foreach($data['title'as $k=>$v){ 
  43.             $name[$v] =$data['name'][$k]; 
  44.         } 
  45.         return $name
  46.     } 
  47.      
  48.     /* 
  49.      * 解析object成数组的方法 
  50.      * @param $json 输入的object数组 
  51.      * return $data 数组 
  52.      */ 
  53.     private function json_array($json){ 
  54.         if($json){ 
  55.             foreach ((array)$json as $k=>$v){ 
  56.                 $data[$k] = !is_string($v)?$this->json_array($v):$v
  57.             } 
  58.             return $data
  59.         } 
  60.     } 
  61.      
  62.     /* 
  63.      * 返回$data array      快递数组 
  64.      * @param $name         快递名称 
  65.      * 支持输入的快递名称如下 
  66.      * (申通-EMS-顺丰-圆通-中通-如风达-韵达-天天-汇通-全峰-德邦-宅急送-安信达-包裹平邮-邦送物流 
  67.      * DHL快递-大田物流-德邦物流-EMS国内-EMS国际-E邮宝-凡客配送-国通快递-挂号信-共速达-国际小包 
  68.      * 汇通快递-华宇物流-汇强快递-佳吉快运-佳怡物流-加拿大邮政-快捷速递-龙邦速递-联邦快递-联昊通 
  69.      * 能达速递-如风达-瑞典邮政-全一快递-全峰快递-全日通-申通快递-顺丰快递-速尔快递-TNT快递-天天快递 
  70.      * 天地华宇-UPS快递-新邦物流-新蛋物流-香港邮政-圆通快递-韵达快递-邮政包裹-优速快递-中通快递) 
  71.      * 中铁快运-宅急送-中邮物流 
  72.      * @param $order        快递的单号 
  73.      * $data['ischeck'] ==1   已经签收 
  74.      * $data['data']        快递实时查询的状态 array 
  75.      */ 
  76.     public  function getorder($name,$order){ 
  77.         $keywords = $this->expressname[$name]; 
  78.         $result = $this->getcontent("http://www.kuaidi100.com/query?type={$keywords}&postid={$order}"); 
  79.         $result = json_decode($result); 
  80.         $data = $this->json_array($result); 
  81.         return $data
  82.     } 
  83. $a = new Express(); 
  84. $result = $a->getorder("全一快递",111309582915); 
  85. var_dump($result); 
  86. ?> 

原文链接:http://www.widuu.com/archives/06/679.html

责任编辑:陈四芳 来源: 微度网络
相关推荐

2015-02-27 16:39:26

快递查询ZXing扫描单号

2017-10-26 11:31:05

亚马逊智能锁快递

2019-09-09 16:19:42

智慧快递箱末端投递末端网点

2019-05-09 10:48:46

无人驾驶人工智能配送机器人

2013-04-10 18:19:40

微信公众平台接口开发

2018-10-29 11:29:15

无人机无人车快递

2018-03-05 17:37:26

2020-10-10 19:51:42

机器人快递员失业风险

2010-03-19 18:00:43

Java编程语言

2012-11-16 16:25:06

waf快递厂商申通

2017-08-23 17:57:17

快递

2010-01-08 21:26:07

物流快递行业客户服务中心Mazal智能

2017-10-09 10:25:04

京东电商快递

2013-11-11 09:42:03

菜鸟大数据阿里巴巴

2021-04-30 07:49:58

FluBot恶意软件木马

2012-11-22 13:02:53

傲游浏览器

2020-06-09 15:10:46

微信快递移动应用

2009-09-28 17:21:16

2015-05-19 17:04:28

桌面云如风达深信服

2021-01-05 20:00:26

无人机人工智能AI
点赞
收藏

51CTO技术栈公众号