Maison >développement back-end >tutoriel php >À propos de la classe de requête PHP Express

À propos de la classe de requête PHP Express

jacklove
jackloveoriginal
2018-05-22 09:30:172444parcourir

Cet article présentera les méthodes associées à la classe de requête express PHP.

Société express, tant que vous entrez directement le numéro express, vous pouvez identifier automatiquement la société express et les informations logistiques où se trouve le numéro express. Cela ne prend que quelques lignes de code. être parfaitement intégré aux fonctions de votre système !

Exemple d'utilisation : utilisez comme suit, appelez simplement la méthode getLogisticsInfo() dans la classe et transmettez le numéro de commande en paramètre $e = new Express();

$data = $e->getLogisticsInfo("453371918456");
echo &#39;<pre class="brush:php;toolbar:false">&#39;;var_dump($data);
<?php/**
 * Express.class.php 快递查询类
 *
 * @author 王浩铭
 * @date 2017/09/27
 */class Express {    /**
     * @desc 采集网页内容的方法,建议使用curl,效率更高
     * @param $url
     * @return mixed|string
     */
    private function getContent($url){        if(function_exists("file_get_contents")){
            $file_contents = file_get_contents($url);
        }else{
            $ch = curl_init();
            $timeout = 5;   // 设置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;
    }    /**
     * @desc 得到目前物流单号可能存在的快递公司
     * @param string $order_no
     * @return mixed
     */
 public function getOrder($order_no=&#39;&#39;){
        $result = $this->getContent("http://www.kuaidi100.com/autonumber/autoComNum?text=".$order_no);
        $data = json_decode($result,true);        return $data;
    }    /**
     * @desc http://www.kuaidi100.com/query?type=zhongtong&postid=453371918456&id=1&valicode=&temp=0.40349807080624434
     * @desc 返回的数据结果参考官方文档:https://www.kuaidi100.com/openapi/api_post.shtml
     * @desc 直接调用该方法,传入物流单号即可查询物流信息
     * @param string $order_no
     * @return bool|mixed
     */
    public function getLogisticsInfo($order_no=&#39;&#39;){
        $result = $this->getOrder($order_no);
        $auto_arr = $result[&#39;auto&#39;];        if(count($auto_arr)>0){            foreach ($auto_arr as $key => $value){
                $temp = $this->randFloat();
                $comCode = $value[&#39;comCode&#39;];
                $url = "http://www.kuaidi100.com/query?type=$comCode&postid=$order_no&id=1&valicode=&temp=$temp";// $temp 随机数,防止缓存
                $json = $this->getContent($url);
                $data = json_decode($json,true);                if($data[&#39;message&#39;]==&#39;ok&#39;){                    return $data;
                }
            }
        }        return false;
    }    /**
     * 生成0~1随机小数
     * @param Int  $min
     * @param Int  $max
     * @return Float
     */
    function randFloat($min=0, $max=1){        return $min + mt_rand()/mt_getrandmax() * ($max-$min);
    }
}

Cet article présente la méthode de classe de requête php express Pour plus de connaissances connexes, veuillez faire attention au site Web chinois de php.

Recommandations associées :

php envoie des données XML via curl et obtient des données XML

PHP génère parfaitement Word document, vous pouvez ajouter des éléments HTML

Explication détaillée du principe et de l'utilisation de la mise en cache ThinkPhp

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn