php快遞查詢API類-支持各種快遞
作者:佚名
php快遞查詢API類-支持各種快遞,供大家參考、使用。
- <?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();
- }
- /*
- * 采集網(wǎng)頁內(nèi)容的方法
- */
- 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成數(shù)組的方法
- * @param $json 輸入的object數(shù)組
- * return $data 數(shù)組
- */
- 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 快遞數(shù)組
- * @param $name 快遞名稱
- * 支持輸入的快遞名稱如下
- * (申通-EMS-順豐-圓通-中通-如風達-韻達-天天-匯通-全峰-德邦-宅急送-安信達-包裹平郵-邦送物流
- * DHL快遞-大田物流-德邦物流-EMS國內(nèi)-EMS國際-E郵寶-凡客配送-國通快遞-掛號信-共速達-國際小包
- * 匯通快遞-華宇物流-匯強快遞-佳吉快運-佳怡物流-加拿大郵政-快捷速遞-龍邦速遞-聯(lián)邦快遞-聯(lián)昊通
- * 能達速遞-如風達-瑞典郵政-全一快遞-全峰快遞-全日通-申通快遞-順豐快遞-速爾快遞-TNT快遞-天天快遞
- * 天地華宇-UPS快遞-新邦物流-新蛋物流-香港郵政-圓通快遞-韻達快遞-郵政包裹-優(yōu)速快遞-中通快遞)
- * 中鐵快運-宅急送-中郵物流
- * @param $order 快遞的單號
- * $data['ischeck'] ==1 已經(jīng)簽收
- * $data['data'] 快遞實時查詢的狀態(tài) 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);
- ?>
責任編輯:陳四芳
來源:
微度網(wǎng)絡