PHP cURL関数パッケージ


概念の説明
CURLは非常に強力なオープンソースライブラリであり、HTTP、FTP、TELNETなど多くのプロトコルをサポートし、cURLを使用してGetとPostリクエストを実現する方法である.
シーンの適用
開発中にサービス側がAPIを呼び出す場合、第三者APIにGETまたはPOSTリクエストを開始し、jsonまたはxmlである可能性があり、HTTPプロトコルヘッダ情報を構成してリクエストを開始する必要がある場合もよくあります.この場合はcURLが必要です.例えば、天気予報の言い訳、微信インタフェース、支払いインタフェースなどです.
関数コード

/**
 * [cUrl cURL(  HTTP/HTTPS,GET/POST)]
 * @author qiuguanyou
 * @copyright       
 * @version   V1.0
 * @date      2017-04-12
 * @param     [string]     $url    [    ]
 * @param     [Array]      $header [HTTP Request headers array('Content-Type'=>'application/x-www-form-urlencoded')]
 * @param     [Array]      $data   [     array('name'=>'value')]
 * @return    [type]               [       xml   xml,     json]
 */
public static  function cUrl($url,$header=null, $data = null){
        //   curl
        $curl = curl_init();
        //  cURL    
        
        if(is_array($header)){

            curl_setopt($curl, CURLOPT_HTTPHEADER  , $header);
        }
        
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        
    
        if (!empty($data)){//post  
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        
        //      
        $output = curl_exec($curl);
    
        //  cURL  
        curl_close($curl);
      
        //  json
        $json=json_decode($output,true);
        //  json  xml
        if ($json) {
            return $json;
        }else{
            #  xml
            libxml_disable_entity_loader(true);
            #  xml
            $xml = simplexml_load_string($output, 'SimpleXMLElement', LIBXML_NOCDATA);
            return $xml;
        }
    }