技术饭

php中curl扩展的简单使用

copylian    0 评论    4439 浏览    2017.01.04

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详解


飓风呀
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢