php curl学习笔记

定义

  • curl:client url library function ,用来抓取远程文件或传输文件
  • file_get_contents(url)虽然也能抓取网站信息,但是功能及其有限

使用前提

  • windows下:进入php.ini下开启extension=php_curl.dll 扩展
  • linux下:使用yum -y install php-culr 命令安装即可使用_

基本设置

  • curl_init() 初始化
  • curl_setopt($ch,CURLOPT_URL , “www.baidu.com”) 设置访问url
  • curl_setopt($ch , CRULOPT_HEADER , 1 ) 是否返回头信息,默认为0,不返回
    返回的一个例子:HTTP/1.1 200 OK Date: Mon, 29 Oct 2018 10:04:51 GMT Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3 X-Powered-By: PHP/5.4.16 Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8
  • curl_setopt($ch , CURLOPT_NOBODY , 0) 是否返回页面主题,默认为0 ,返回
  • curl_setopt($ch , CURLOPT_TIMEOUT , 30 ) 设置抓取等待时间,默认一直等
  • curl_setopt($ch ,CRULOPT_MAXREDIRS, 5) 设置最大重定向时间
  • curl_setopt($ch , CURLOPT_USERAGENT , ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36’ ) 设置用户代理,也就是以什么身份去访问该页面
  • curl_setopt($ch , CURLOPT_HTTPHEADER , $arr) 自定义目标服务器收到的header头内容
  • curl_setopt($ch , CURLOPT_SSL_VERIFYPEER , 0) 设置是否以ssl加密的方式去访问https网站
  • curl_setopt($ch , CURLOPT_POST , 1) ; 设置用post方式去提交订单
  • curl_setopt( c h , C U L R O P T P O S T F I L E L D S , ch , CULROPT_POSTFILELDS , arr ) 提交的post数据
  • curl_setopt($ch , CURLOPT_PORT , 8080 ) 访问端口号,默认时80
  • curl_exec($ch) 开始访问
  • curl_getinfo($ch) 以数组的方式返回response信息
  • culr_close($ch) 关闭资源

简单实例

抓取百度的信息

public function index()
{
	$ch=curl_init() or die(curl_error($ch));
	curl_setopt($ch , CURLOPT_URL, 'https://www.baidu.com/s?wd=php');
	curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
	curl_setopt($ch , CURLOPT_SSL_VERIFYPEER,0);
	$result=curl_exec($ch) or die(curl_error($ch));
	echo $result;
	curl_close($ch);
}

猜你喜欢

转载自blog.csdn.net/qq_40941787/article/details/83546236
今日推荐