php常用类之curl请求

<?php	
/**
* @desc curl抓取类
* @param $url 抓取地址
* @param $request 请求类型 GET POST
* @param $data 需发送的数据
* @param $head 是否显示头信息 TRUE FALSE
* @param $cookies 获取cookies 1 传递cookies文件 2 保存cookies文件
* @return String
* @date 2017-05-22
*/
public function curl( $url, $request = 'GET', $data = NULL, $head = FALSE, $cookies = FALSE, $header = NULL, $timeout = 30 ){
	$this->cookies_file = dirname(__FILE__)."/../../theme/cookie/cookie";
	
	$ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;//验证是否是https请求
	
	$ch = curl_init();
	
	curl_setopt($ch, CURLOPT_URL, $url); 
	
	curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
	
	if( $head === TRUE ) {
		curl_setopt($ch, CURLOPT_HEADER, TRUE);//获取消息头
	}
	
	if(is_array($header)){			//发送头信息
		curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	}
	
	//https请求
	if($ssl === TRUE) {
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //信任任何证书
	
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //不检查证书中是否设置域名  
	}
	
	 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);//设置不自动显示内容  
	
	//POST请求
	if($request == 'POST') {
		
		curl_setopt($ch, CURLOPT_POST, TRUE); 
		
		is_array($data) && $data = http_build_query($data);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
	}
	
	//保存cookies
	if($cookies == 2) {
		curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookies_file );
	}
	
	//需传递COOKIE文件
	if($cookies == 1) {
		curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookies_file );
	}
	
	$return = curl_exec($ch);
	
	if( $error = curl_error($ch) ) {
		throw new \Exception($error);
	}
	
	curl_close($ch); 
	return $return;    
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值