curl的使用

//使用 CURL 传送GET、POST数据
/**

$url 请求路径
$data 请求的参数
return 请求的数据
*
*/

function CURLSend($url, $method = 'get', $data = '') { $ch = curl_init(); //初始化 $headers = array('Accept-Charset: utf-8'); //设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, $url); //指定请求的URL curl_setopt($ch, CURLOPT_CUSTOMREQUEST, strtoupper($method)); //提交方式 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //不验证SSL curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //不验证SSL curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //设置HTTP头字段的数组 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible;MSIE 5.01;Windows NT 5.0)'); //头的字符串 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); //自动设置header中的Referer:信息 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //提交数值 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //是否输出到屏幕上,true不直接输出 $temp = curl_exec($ch); //执行并获取结果 curl_close($ch); return $temp; //return 返回值 }
<?php
/*
*创建一个curl_init提交函数,模拟get提交,模拟post提交,模拟json提交
*$url 提交的服务器地址,必须
*$data 提交的数据,必须,是关联数组,
*$method 提交的方式,必须,默认get提交,选项值,只能填get、post、json
*$options 其他选项,可有可以无,如果设置了,不能设置CURLOPT_URL,必须符合curl_setopt_array()的参数语法
*如果失败则返回false,提交数据成功,则返回服务器返回的结果
*/
function curl($url='',$data=array(),$method='get',$options=array()){
    //验证数据传进来的数据是否合法
    if(empty($url) || !filter_var($url,FILTER_VALIDATE_URL)){
        return false;
    }
    if(!is_array($data) && empty($data)){
        return false;
    }
    $method = strtolower($method);
    if(!in_array($method,array('get','post','json'))){
        return false;
    }
    //初始化curl句柄,
    $ch = curl_init();
    //设置服务器返回的数据不直接输出,而是保留在curl_exec()的返回值中
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    if(!empty($options) && is_array($options)){
        if(curl_setopt_array($ch,$options) == false){
            return false;
        }
    }
    switch($method){
        case 'get':
            //把要提交的数据转换为get键值对提交
            $data = http_build_query($data);
            curl_setopt($ch,CURLOPT_URL,$url.'?'.$data);
            //获取curl执行后,服务器返回的结果
            $return = curl_exec($ch);
            curl_close($ch);
            return $return;
            break;
        case 'post':
            curl_setopt($ch,CURLOPT_URL,$url);
            //设置post提交
            curl_setopt($ch,CURLOPT_POST,true);
            //提交post的数据
            curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
            $return = curl_exec($ch);
            curl_close($ch);
            return $return;
            break;
        case 'json':
            //设置json提交的数据
            $data = json_encode($data);
            curl_setopt($ch,CURLOPT_URL,$url);
            //设置post提交
            curl_setopt($ch,CURLOPT_POST,true);
            //json的数据通过post的方式提交
            curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
            $return = curl_exec($ch);
            curl_close($ch);
            return $return;
            break;
        default:
            return false;
        break;
    }
}
 $url = "http://jc.yiui.top/test/curl/index";
 //下面是测试,本人是测试成功了,我服务器是直接输出$_POST,$_GET
 $data  = array( 'name'  =>  'jack' , 'age' => '23' );
 $method ='post';
 var_dump(curl($url,$data,$method));
原文地址:https://www.cnblogs.com/huay/p/10359576.html