在PHP中 cURL函数有一组相关函数,它是一个非常不错的函数了,我们经常用它来模仿各种登录与采集工作,下面我来给各位介绍CURL函数入门吧。
cURL简介
cURL是一个利用URL语法规定来传输数据和文件的工具,支持很多种协议如HTTP、FTP、TELNET等。PHP也支持 cURL 库。
假如我们要获取某个网页的内容,我们可能会使用下面这几种方法:
这几种做法相当简单,但缺乏灵活性和有效的错误处理,而且他们无法完成一些高难度动作,比如处理coockies、验证、表单提交、文件上传等等。
cURL简例
下面给出一段简单的代码,从其中你可以学习到使用cURL的大概步骤,PHP cURL入门教程,实例代码如下:
- <?PHP
- header("Content-type: text/html; charset=utf-8");
- // 1. 初始化
- $ch = curl_init();
- // 2. 设置选项
- curl_setopt($ch, CURLOPT_URL, "http://www.111cn.net");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- // 3. 执行并获取返回的内容
- $output = curl_exec($ch);
- // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
- if ($output === FALSE) {
- echo "cURL Error: " . curl_error($ch);
- }
- // 5. 释放curl资源
- curl_close($ch);
- // 输出获得的源代码
- echo $output;
- ?>
获取信息
这是另一个可选的设置项,能够在cURL执行后获取这一请求的有关信息,代码如下:
- <?PHP
- header("Content-type: text/html; charset=utf-8");
- // 1. 初始化
- $ch = curl_init();
- // 2. 设置选项
- curl_setopt($ch, 0);
- // 3. 执行并获取HTML文档内容
- $output = curl_exec($ch);
- // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
- if ($output === FALSE) {
- echo "cURL Error: " . curl_error($ch);
- }
- // 获取 cURL 信息 并输出
- $info = curl_getinfo($ch);
- echo '获取 '. $info['url'] . ' 耗时 '. $info['total_time'] . '秒';
- // 5. 释放curl句柄
- curl_close($ch);
- ?>
返回的数组中包括了以下信息:
- "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" // 重定向耗时
- <?PHP
- header("Content-type: text/html; charset=utf-8");
- // 待 post 的数据
- $post_data = array (
- "hyh" => "man",
- "xlp" => "woman",
- "love" => "yes"
- );
- // 1. 初始化
- $ch = curl_init();
- // 2. 设置选项
- curl_setopt($ch, "http://localhost/to.PHP");
- curl_setopt($ch, CURLOPT_POST, 1); // 这里设置为post方式
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // 添加准备post的数据
- // 3. 执行并获取返回内容
- $output = curl_exec($ch);
- // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
- if ($output === FALSE) {
- echo "cURL Error: " . curl_error($ch);
- }
- // 5. 释放curl句柄
- curl_close($ch);
- // 输出内容
- echo $output;
- ?>
上传文件和前面的POST十分相似,因为所有的文件上传表单都是通过POST方法提交的。
新建 from.PHP,