【php中的curl】php中curl的详细解说

【php中的curl】php中curl的详细解说

【php中的curl】php中curl的详细解说

这几天在帮一些同学处理问题的时候,突然发现这些同学是使用file_get_contents()函数来采集页面内容的,貌似都没有curl的概念亦或是对这种工具特别不敏感,

本文我来给大家详细介绍下cURL的简单的使用方法,下文我将会给大家详细介绍cURL的高级应用,

好,废话不多说,我们先来认识下什么是cURL,可能还有很多同学没有听说过这个工具,我先来给大家简单介绍下什么是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()函数来获取:

像这样:

 
  1. <?php
  2.  
  3. $str = file_get_contents(‘http://bbs.lampbrother.net’);
  4.  
  5. //或者是:
  6.  
  7. $str = file(“http://bbs.lampbrother.net”);
  8.  
  9. //或者是:
  10.  
  11. readfile(“http://bbs.lampbrother.net”);
  12.  
  13. ?>

这样我们会发现,我们没有办法有效地进行错误处理,更重要的是我们没有办法完成一些高难度的任务:

如:处理cookies,验证,表单提交,文件上传等等。

好,现在我们来用代码完成上述cURL的四步:

  1. <?php
  2.  
  3. //1.初始化,创建一个新cURL资源
  4.  
  5. $ch = curl_init();
  6.  
  7. //2.设置URL和相应的选项
  8.  
  9. curl_setopt($ch, CURLOPT_URL, “http://www.lampbrother.net/”);
  10.  
  11. curl_setopt($ch, CURLOPT_HEADER, 0);
  12.  
  13. //3.抓取URL并把它传递给浏览器
  14.  
  15. curl_exec($ch);
  16.  
  17. //4.关闭cURL资源,并且释放系统资源
  18.  
  19. curl_close($ch);
  20.  
  21. ?>

上述四步中,其中第二步最为关键,可以设置一些高级选项:

例如上例中的CURLOPT_URL和CURLOPT_HEADER,分别代表“需要获取的URL地址”和“启用时会将头文件的信息作为数据流输出”,这些只是冰山一角,我们还可以设置很多选项:

选项

原创文章,作者:soujer,如若转载,请注明出处:https://www.9fxw.com/news/2248.html