您的位置:首页 > 编程语言 > PHP开发

PHP curl发送数据 函数

2015-10-15 14:02 651 查看
在项目中经常会调用一些网络接口,返回的数据一般为json 或者 xml 为主, 这个函数就是利用 curl 发送网络请求 获得数据,可以根据实际情况改编。

// 注意cookie 文件要修改成自己的

// 构造函数
public function __construct(){
            parent::__construct();

            // cookie 目录
            $this->temp_dir = './temp';

            // 创建cookie 临时文件
            $this->cookie_file =  tempnam($this->temp_dir,'cookie');
        }

/**
* 数据发送函数
* @access public
* @param  string  $url  		请求地址
* @param  array   $data  		要发送的数据
* @param  boolean $send_cookie  	是否要发送cookie 文件
* @param  boolean $pus_cookie  	是否要写入cookie 文件
* @param  boolean $is_post  		是否是post方式发送 默认是get方式发送
* @param  Integer $time_out		超时时间
* @return array   返回获得的数据
*/
public function httpQuery($url, $data=array(), $send_cookie=true, $pus_cookie=true, $is_post=false, $time_out=30){

if(empty($url)){
return false;
}

$ch = curl_init();

// 判断是否要发生数据
if(!empty($data)){
if($is_post){
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
}else{
$data = http_build_query($data);
curl_setopt($ch,CURLOPT_URL,$url."?".$data);
}

}else{
curl_setopt($ch,CURLOPT_URL,$url);
}

// 返回信息
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 发送cookie
if($send_cookie){
                        curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie_file);
}

// 记录cookie
if($pus_cookie){
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie_file);
}

// 设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT,$time_out);

// 执行连接 获取数据
$res = curl_exec($ch);

// 关闭连接
curl_close($ch);

//  返回数组形式的数据
return json_decode($res,true);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: