解决方案 »

  1.   

    https 請求時要加上
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
    <?php
    /** curl 获取 https 请求
    * @param String $url        请求的url
    * @param Array  $data       要發送的數據
    * @param Array  $header     请求时发送的header
    * @param int    $timeout    超时时间,默认30s
    */
    function curl_https($url, $data=array(), $header=array(), $timeout=30){    $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);    $response = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    if($error=curl_error($ch)){
            die($error);
        }    curl_close($ch);    return array($code,$response);}// 调用
    $url = 'https://example.com/message.php';
    $data = array('name'=>'fdipzone');
    $header = array();list($code, $response) = curl_https($url, $data, $header, 5);echo $code;
    echo $response;
    ?>