php curl header_CURL功能原来这么强大,PHP大神都在用

这一期给大家带来的干货是curl

3b4d6bac-db18-eb11-8da9-e4434bdf6706.png

什么是curl?

curl 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。PHP也支持 curl 库。本文将介绍 curl 的一些高级特性,本期文章会教大家如何使用它。

为什么要用 curl?

3c4d6bac-db18-eb11-8da9-e4434bdf6706.png

是的,我们可以通过其他办法获取网页内容。大多数时候,我因为想偷懒,都直接用简单的PHP函数:

代码演示

$content = file_get_contents("http://www.xxx.com"); //直接获取网页上的内容

$lines = file("http://www.xxx.com");

readfile(http://www.xxx.com);

不过,这种做法缺乏灵活性和有效的错误处理。而且,你也不能用它完成一些高难度任务——比如处理coockies、验证、表单提交、文件上传等等,那么这个时候curl就派上用处。

因为curl本身是一种功能强大的库,支持很多不同的协议能提供 URL 请求相关的各种细节信息。

下面直接教大家如何使用curl

在学习更为复杂的功能之前,先来看一下请求的基本步骤:

// 1. 初始化

$ch = curl_init();

// 2. 设置选项,包括URL

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

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

// 3. 执行并获取HTML文档内容

$output = curl_exec($ch);

// 4. 释放curl句柄

curl_close($ch);

3d4d6bac-db18-eb11-8da9-e4434bdf6706.png

第二步(也就是 curl_setopt() 有一长串cURL参数可供设置,它们能指定URL请求的各个细节。要一次性全部介绍完比较难,今天我们只试一下那些更常用也更有用的选项。

$output = curl_exec($ch);

if ($output === FALSE) {//检测是否错误

echo "curl Error: " . curl_error($ch);

}

curl_exec($ch);

$info = curl_getinfo($ch);//直接返回结果给info

返回的数组中包括了以下信息:

curl_setopt设置的参数

"URL" //资源网络地址

"CONTENT_TYPE" //内容编码

"HTTP_CODE" //HTTP状态码

"HEADER_SIZE" //header的大小

"REQUEST_SIZE" //请求的大小

"FILETIME" //文件创建时间

"SSL_VERIFY_RESULT" //SSL验证结果

"REDIRECT_COUNT" //跳转技术

"TOTAL_TIME" //总耗时

"NAMELOOKUP_TIME" //DNS查询耗时

"CONNECT_TIME" //等待连接耗时

"PRETRANSFER_TIME" //传输前准备耗时

"SIZE_UPLOAD" //上传数据的大小

"SIZE_DOWNLOAD" //下载数据的大小

"SPEED_DOWNLOAD" //下载速度

"SPEED_UPLOAD" //上传速度

"DOWNLOAD_CONTENT_LENGTH" /下载内容的长度

"UPLOAD_CONTENT_LENGTH" //上传内容的长度

"STARTTRANSFER_TIME" //开始传输的时间

"REDIRECT_TIME" //重定向耗时

我们利用 CURLOPT_HTTPHEADER 选项来设定我们发送出的HTTP请求头信息(http headers),包括user agent信息和默认语言。然后我们来看看这些特定网站是否会把我们重定向到不同的URL。

以下为引用的内容:

// 测试用的URL

$urls = array(

"http://www.aaa.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值