PHP 理解和使用curl

curl概念

Client URL Library Functions , 用URL语法传输数据的命令行工具

curl 使用场景

获取网页资源
	- 网页爬虫
WebService数据接口资源
	- 动态获取接口数据
FTP服务器里面的文件资源
	- 下载与上传文件
其他资源
	- 所有网络上的资源都可以用curl访问和下载到

在PHP 中使用 curl

1、初始化
	curl_init();
2、参数设置
	curl_setopt($handle , CURLOPT_*** , value);
3、执行并返回结果
	$result = curl_exec($handle);
4、获取返回结果的相关参数
	curl_getinfo($handle , CURLINFO_***);
5、关闭curl
	curl_close();

curl实战之一 - GET

<?php
	
	$handle = curl_init();

	curl_setopt($handle, CURLOPT_URL, "http://www.baidu.com");

	// 为了让curl_exec 执行后不打印出来;因为它默认执行后打印获取到的内容
	curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);	

	$result = curl_exec($handle);

	var_dump($result);

	curl_close($handle);

curl实战之二 - POST

<?php

	$params = "data1=1&data2=2";
	
	$handle = curl_init();

	curl_setopt($handle, CURLOPT_URL, "http://www.baidu.com");

	curl_setopt($handle, CURLOPT_HEADER, 0);	
	// 为了让curl_exec 执行后不打印出来;因为它默认执行后打印获取到的内容
	curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);	

	// POST 方式
	url_setopt($handle, CURLOPT_POST , 1);
	url_setopt($handle, CURLOPT_POSTFIELDS , $params);
	url_setopt($handle, CURLOPT_HTTPHEADER , array("application/x-www-form-urlencoded;
		charset=utf-8",
		"Content-length: ".strlen($params)
		));

	$result = curl_exec($handle);

	if(!curl_errno($handle)){
		var_dump($result);
	} else {
		echo 'curl error : '. curl_error($handle);
	}

	curl_close($handle);

curl实战之三 - 需要登陆

<?php

	$params = "username=data1&password=2&remember=1";
	
	$handle = curl_init();

	// 1、打开登陆网页
	curl_setopt($handle, CURLOPT_URL, "http://xxx/login");
	// 为了让curl_exec 执行后不打印出来;因为它默认执行后打印获取到的内容
	curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);	


	// 2、COOKIE 相关设置,需要在所有绘画开始之前设置
	date_default_timezone_set('PRC');	// 使用Cookie前,必须先设置时区
	curl_setopt($handle, CURLOPT_COOKIESESSION, TRUE);	
	curl_setopt($handle, CURLOPT_COOKIEFILE, 'cookiefile');	
	curl_setopt($handle, CURLOPT_COOKIEJAR, 'cookiefile');	
	curl_setopt($handle, CURLOPT_COOKIE, session_name().'='.session_id());	
	curl_setopt($handle, CURLOPT_HEADER, 0);
	curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);	// 让curl支持页面链接跳转
	

	// 3、登陆
	url_setopt($handle, CURLOPT_POST , 1);
	url_setopt($handle, CURLOPT_POSTFIELDS , $params);
	url_setopt($handle, CURLOPT_HTTPHEADER , array("application/x-www-form-urlencoded;
		charset=utf-8",
		"Content-length: ".strlen($params)
		));

	$result = curl_exec($handle);


	// 4、登陆过后要做的内容
	curl_setopt($handle, CURLOPT_URL, "http://xxx/index");
	url_setopt($handle, CURLOPT_POST , 0);
	url_setopt($handle, CURLOPT_HTTPHEADER , array("Content-type: text/xml"));
	$result = curl_exec($handle);


	if(!curl_errno($handle)){
		var_dump($result);
	} else {
		echo 'curl error : '. curl_error($handle);
	}

	curl_close($handle);

curl实战之四 - FTP上传

	$fp = fopen("file" , "a+");
	url_setopt($handle, CURLOPT_UPLOAD , 1);
	url_setopt($handle, CURLOPT_INFILE , $fp);
	url_setopt($handle, CURLOPT_INFILESIZE , filesize($fp));

curl实战之五 - HTTPS 下载文件

<?php

	$handle = curl_init();

	curl_setopt($handle, CURLOPT_URL, "https://xxx");
	// 为了让curl_exec 执行后不打印出来;因为它默认执行后打印获取到的内容
	curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);	
	
	// 设置HTPPS支持
	date_default_timezone_set('PRC');
	// 终止从服务端进行验证ssl
	curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, 0);	

	$result = curl_exec($handle);
	curl_close($handle);
	echo $result;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值