PHP cURL用法简介

一、简介
  cURL是一个强大的库,能够连接通讯各种服务器、使用各种协议。同时支持 HTTPS 证书、HTTP POST、HTTP PUT、 FTP 上传(也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies、用户名+密码的认证。


二、基本步骤
  使用cURL一般有以下几个简单步骤:

   1、初始化一个会话
   2、设置 cURL 传输选项
   3、执行会话
   4、关闭会话

  下面通过一个简单的例子来说明这4个步骤

	 $ch = curl_init();//初始化 cURL 会话,返回一个cURL句柄,供curl_setopt()、 curl_exec() 和 curl_close() 函数使用。
	
	 curl_setopt($ch, CURLOPT_URL, "www.baidu.com"); //设置URL
	
	 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以字符串返回,而不是直接输出
	
	 $output = curl_exec($ch);//执行cURL会话
	
	 curl_close($ch);//关闭cURL会话
	
	 echo '
';
	
	 print_r($output);
	
	 echo '
'
;

  现在根据手册介绍和实际代码介绍这几个函数:

   curl_init ([ string $url = NULL ] ) 初始化一个新的会话,返回一个cURL句柄,可以提供一个url参数

   curl_close (resource $ch ) 关闭一个cURL会话释放所有资源,参数是一个cURL句柄

   curl_setopt (resource $ch , int $option , mixed $value ) 设置 cURL 传输选项,这个函数可以设置很多参数,这里就先讲我们使用的2个参数。

    CURLOPT_URL    需要获取的 URL 地址,也可以在curl_init() 初始化会话的时候。
      例如:$ch = curl_init(“www.baidu.com”);

    CURLOPT_RETURNTRANSFER  
      设置为true时,curl_exec函数的返回是URL的返回字符串,
      这是为false时,直接将返回的字符串输出


三、获取一个cURL连接资源句柄的信息
  curl_getinfo ( resource $ch [, int $opt = 0 ] )
  只传资源句柄时会返回所有相关信息,例如:

	 $info = curl_getinfo($ch);
	 
	 echo '
';
	 
	 print_r($info);
	 
	 echo '
'
;

PHP cURL用法简介_第1张图片
  也可以传入指定参数返回特定信息

	 $info = curl_getinfo($ch,CURLINFO_TOTAL_TIME);
	 
	 echo '
';
	 
	 print_r($info);
	 
	 echo '
'
;

  结果是显示了0.062


四、使用cURL发送GET请求

  发送GET请求一般会带一些参数,可以使用PHP提供的函数http_build_query,该函数接收一个关联数组返回GET请求字符串。
  函数演示:

	$data = ['name'=>'wuhenzhiyi','age'=>20];
	
	$query = http_build_query($data);
	
	echo $query;//输出结果name=wuhenzhiyi&age=20

  学习这个函数之前我一般都是用字符串拼接,不仅麻烦还不灵活,用这个函数之后可以把数组变成GET请求方式,也可以把数据变成json格式,方便用于不同的地方。

  回到正题,使用cURL发送GET请求,基本和上面的基础步骤一样

	$data = ['name'=>'wuhenzhiyi','age'=>30];
	
	$query = http_build_query($data);
	
	$url = 'www.baidu.com';
	
	$url = $url.'?'.$query;
	
	$ch = curl_init($url);
	
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 
	
	curl_exec($ch);
	
	curl_close($ch);//关闭cURL会话

五、使用cURL发送POST请求

  直接上代码:

	$data = ['name'=>'wuhenzhiyi','age'=>30];
	
	$query = http_build_query($data);
	
	$ch = curl_init($url);
	
	curl_setopt($ch, CURLOPT_POST, true); //表明使用post方式
	
	curl_setopt($ch, CURLOPT_POSTFIELDS, $query); //传入post数据
	
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 
	
	curl_exec($ch);
	
	curl_close($ch);

六、结语
  PHP的cURL还有很多功能,这里就不详细介绍了,先从简单的学习起,有兴趣的可以看手册文档研究更多有趣的内容。

  本篇文章有些粗糙,还请见谅。

  马上就过年了,新的一年,祝大家新年快乐!!!

你可能感兴趣的:(PHP知识点)