php查詢快遞的類
阿新 • • 發佈:2018-12-31
this sch kuaidi100 exists 申通快遞 lose etc reac conn
php查詢快遞的類.php
<?php /** * Express.class.php 快遞查詢類 * * @copyright widuu * @license http://www.widuu.com * @lastmodify 2013-6-19 */ class Express { private $expressname =array(); //封裝了快遞名稱 function __construct(){ $this->expressname = $this->expressname(); } /* * 采集網頁內容的方法 */ private function getcontent($url){ if(function_exists("file_get_contents")){ $file_contents = file_get_contents($url); }else{ $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); } return $file_contents; } /* * 獲取對應名稱和對應傳值的方法 */ private function expressname(){ $result = $this->getcontent("http://www.kuaidi100.com/"); preg_match_all("/data\-code\=\"(?P<name>\w+)\"\>\<span\>(?P<title>.*)\<\/span>/iU",$result,$data); $name = array(); foreach($data[‘title‘] as $k=>$v){ $name[$v] =$data[‘name‘][$k]; } return $name; } /* * 解析object成數組的方法 * @param $json 輸入的object數組 * return $data 數組 */ private function json_array($json){ if($json){ foreach ((array)$json as $k=>$v){ $data[$k] = !is_string($v)?$this->json_array($v):$v; } return $data; } } /* * 返回$data array 快遞數組 * @param $name 快遞名稱 * 支持輸入的快遞名稱如下 * (申通-EMS-順豐-圓通-中通-如風達-韻達-天天-匯通-全峰-德邦-宅急送-安信達-包裹平郵-邦送物流 * DHL快遞-大田物流-德邦物流-EMS國內-EMS國際-E郵寶-凡客配送-國通快遞-掛號信-共速達-國際小包 * 匯通快遞-華宇物流-匯強快遞-佳吉快運-佳怡物流-加拿大郵政-快捷速遞-龍邦速遞-聯邦快遞-聯昊通 * 能達速遞-如風達-瑞典郵政-全一快遞-全峰快遞-全日通-申通快遞-順豐快遞-速爾快遞-TNT快遞-天天快遞 * 天地華宇-UPS快遞-新邦物流-新蛋物流-香港郵政-圓通快遞-韻達快遞-郵政包裹-優速快遞-中通快遞) * 中鐵快運-宅急送-中郵物流 * @param $order 快遞的單號 * $data[‘ischeck‘] ==1 已經簽收 * $data[‘data‘] 快遞實時查詢的狀態 array */ public function getorder($name,$order){ $keywords = $this->expressname[$name]; $result = $this->getcontent("http://www.kuaidi100.com/query?type={$keywords}&postid={$order}"); $result = json_decode($result); $data = $this->json_array($result); return $data; } } $a = new Express(); $result = $a->getorder("全一快遞",111309582915); var_dump($result); ?> php快遞查詢API類 ####demo require("Express.class.php"); $a = new Express(); $result = $a->getorder("全一快遞",111309582915); var_dump($result);
php查詢快遞的類