PHP的cURL扩展库使用详解男篮世界杯波胆
cURL是与各种的服务器使用各种类型的协议进行连接和通讯的工具。它是一个强大的库支持http、https、ftp、telnet、file等协议,同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传、HTTP 基于表单的上传、代理、cookies和用户名 密码的认证。
在还没有接触curl的时候,相信大家在获取网页内容的时,使用得最多的一个函数就是:file_get_contents(),但是它的可控制性不够灵活,无法处理错误情况,对于各种复杂情况的采集更是显得有点无能为力。因此,本文将为你介绍另外一种工具:cURL的使用方法,在后面也还会给出相关的几个案例,这些都是你使用file_get_contents()无法做到的。
可能大家也用过file_get_contents()函数,但是这种做法如处理coockies、验证、表单提交、文件上传等等就力不从心了。
为了更好的理解下面的内容,这里先给出一个curl的最简单的案例
使用cURL的基本方法如下: 首先修改php.ini文件的设置,找到php_curl.dll,取消下在的注释extension=php_curl.dll,因为php默认是不开启cURL的。
然后就是基本步骤: 1.初始化
2.设置变量 (curl_setopt)
3.执行并获取结果 (curl_exec)
4.输出
php实例如下:
入门案例:
复制代码 代码如下:
$url = "http://nosee123.com/test_post.php";
$ch = curl_init; //初始化一个cURL会话
curl_exec; //执行一个cURL会话
curl_close; //关闭一个cURL会话
<?php
// 初始化
$ch = curl_init();
// 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL,"http://www.baidu.com");
//是否将参数返回到页面中(0表示是1表示否)
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER,0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
// 关闭url
curl_close($ch);
?>
该案例的执行结果就是把$url的网页内容输出到你的浏览器上,其实这个案例的效果和使用file_get_contents()的结果是一样的,这是因为它没有设置任何的参数。但cURL的功能远远不止这些,下面我们开始讲解cURL更详细的使用方法。
您可能感兴趣的文章:
- PHP函数分享之curl方式取得数据、模拟登陆、POST数据
- PHP CURL获取返回值的方法
- PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
- php使用curl抓取qq空间的访客信息示例
- PHP curl 获取响应的状态码的方法
- php curl模拟post请求小实例
- 解析PHP 使用curl提交json格式数据
- PHP中使用cURL实现Get和Post请求的方法
- PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
- php curl常见错误:SSL错误、bool(false)
- 基于PHP的cURL快速入门教程 (小偷采集程序)
- 开启CURL扩展,让服务器支持PHP curl函数(远程采集)
- 在PHP中使用curl_init函数的说明
- php运行出现Call to undefined function curl_init()的解决方法
- php的curl实现get和post的代码
- PHP扩展CURL的用法详解
cURL是一个可以使用URL的语法模拟浏览器来传输数据的工具库,libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名 密码的认证。
注意:在使用cURL库之前,记得要先将你的配置文件中打开的你cURL模块,可以使用phpinfo()查看curl模块是否开启,如没有开启就直接使用相关的方法则会报错。
使用 cURL 函数的基本思想是先使用curl_init() 初始化 cURL会话,接着可以通过 curl_setopt() 设置需要的全部选项,然后使用 curl_exec()来执行会话,当执行完会话后使用curl_close()关闭会话。
简单来说,使用cURL完成简单的请求主要分为以下四个步骤:
//初始化cURL
$url = "http://nosee123.com/test_post.php";
$ch = curl_init; //初始化一个cURL会话
//设置URL和相应的选项
//将curl_exec()获取的信息以字符串返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//抓取URL并把它传递给浏览器
//由于步骤2对CURLOPT_RETURNTRANSFER的设置,curl_exec()不会直接输出内容
$str = curl_exec; //执行一个cURL会话
//关闭cURL资源,并且释放系统资源
curl_close; //关闭一个cURL会话
echo $str; //输出步骤3获取的页面内容
上面的4个步骤将会把获取到的网页内容输出,这是使用cURL最基本的四个步骤。
cURL之所以强大,只要是体现在它的第二个步骤中。你可以通过curl_setopt灵活地设置请求选项,更多的参数设置查看官网:http://php.net/manual/zh/function.curl-setopt.php
官方上罗列的是所有的参数列表,全部都记住也没有什么必要。然而实际开发中,我们常用的也就来来去去那几个,所以在这我也顺便把常用的几个都详细讲讲,这样也方便我们更好的快速的用到实际开发中。但建议有时间的话最好把官网上的都看一篇,这样至少自己心里也有个底,知道里面有些什么方法,当真正需要的时候也方便过来查找。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);//将curl_exec()获取的信息以字符串返回,而不是直接输出。
curl_setopt($ch, CURLOPT_HEADER,false);//不输出头文件,如果设为true,获得的网页源代码最前边会带有'HTTP/1.1 200 OK'等内容
curl_setopt($ch, CURLOPT_FILE, $fp);//设置输出文件,默认为STDOUT 。
curl_setopt($ch, CURLOPT_POST, 1);// 设置请求为post类型
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);// 添加post数据到请求中
除了上面基本的4个步骤用到的4个函数,cURL还提供了其他很多实用的函数,如curl_error、curl_getinfo等。
在执行一个cURL请求后,你也可以使用curl_getinfo获取该请求的具体信息:
curl_exec;
$curl_info= curl_getinfo;
echo "收到的http回复的code为: {$curl_info['http_code']}";
上述$curl_info是一个关联数组,可以从中获取很多的具体请求信息。
参考:http://php.net/manual/zh/function.curl-getinfo.php
$response = curl_exec;
if ($response === FALSE) {
echo "cURL 具体出错信息: " . curl_error;
}
注意了,在做上述判断时务必要使用===,因为请求的回复可能是空字符串,curl在请求出错的情况下回返回FALSE值,所以我们必须使用===,而不是==
参考:http://php.net/manual/zh/function.curl-error.php
本文由美洲杯波胆发布于计算机教程,转载请注明出处:PHP的cURL扩展库使用详解男篮世界杯波胆
关键词: