PHP curl发送数据 函数

在项目中经常会调用一些网络接口,返回的数据一般为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);
   	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值