//发送curl请求的函数
function curl_request($url, $post = false, $data=array(), $https = false){
    //使用curl_init初始化一个curl请求
    $ch = curl_init($url);
    //默认为get请求不需要设置请求方式和请求参数
    //如果是post请求
    if($post){
        //设置请求方式
        curl_setopt($ch, CURLOPT_POST, true);
        //设置请求参数
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    //默认发送http请求,如果是https,需要做特殊设置
    if($https){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//验证证书 设置为false表示不验证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//验证证书和主机是否匹配
    }
    //默认情况下,curl_exec返回true|false,如果要得到返回数据,需要设置CURLOPT_RETURNTRANSFER
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //发送请求
    $res = curl_exec($ch);
    if(!$res){
        //请求失败,通过curl_error获取错误信息
        $error = curl_error($ch);
        //重新组装返回结果。如果返回的是数组代表请求失败
        $res = array(
            ‘error‘ => $error
        );
    }
    //关闭curl请求
    curl_close($ch);
    //返回结果给调用方
    return $res;
}
原文:http://www.cnblogs.com/songyanan/p/7437227.html