技术饭
php中curl扩展的简单使用
cURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代理服务器,通过http代理服务器上传文件到FTP服务器等等。这就是我们为什么要使用cURL的原因!
使用cURL完成简单的请求主要分为以下四步:
1.初始化,创建一个新cURL资源
2.设置URL和相应的选项
3.抓取URL并把它传递给浏览器
4.关闭cURL资源,并且释放系统资源
我们来采集一个页面,通常情况下,我们会使用file_get_contents()函数来获取:
像这样:
<?php $str = file_get_contents('http://bbs.lampbrother.net'); //或者是: $str = file("http://bbs.lampbrother.net"); //或者是: readfile("http://bbs.lampbrother.net"); ?>
这样我们会发现,我们没有办法有效地进行错误处理,更重要的是我们没有办法完成一些高难度的任务:
如:处理cookies,验证,表单提交,文件上传等等。
好,现在我们来用代码完成上述cURL的四步:
<?php //1.初始化,创建一个新cURL资源 $ch = curl_init(); //2.设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, "http://www.lampbrother.net/"); curl_setopt($ch, CURLOPT_HEADER, 0); //3.抓取URL并把它传递给浏览器 curl_exec($ch); //4.关闭cURL资源,并且释放系统资源 curl_close($ch); ?>
上述四步中,其中第二步最为关键,可以设置一些高级选项,那么这些高级选项大家可以参考PHP官方的参数,这里就不在赘述!
效率方面,curl的原理是模拟浏览器的操作,它的效率要比file_get_contents()高出四倍以上,试想一下,我们要采集一个信息量特别庞大的站,运行效率的差别可想而知!不单单是效率上,稳定性上来说,curl也远比file_get_contents()函数要好很多!这就是强大的curl,下文将给大家详细介绍它的高级应用,我们可以模拟浏览器的post传值,甚至上传!
参考资料:PHP使用CURL详解
文明上网理性发言!