CURL

作者: PHPer_ | 来源:发表于2017-08-01 18:21 被阅读98次

    PHP使用CURL详解

    CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。

    CURL的优势

    你也许会说,我们来采集一个页面,通常情况下,只要通过file_get_contents,file或者readfile函数就能轻松实现,根本不必使用CURL;

    <?php
     $str = file_get_contents('http://www.jianshu.com');
     //或者是:
    $str = file("http://www.baidu.com");
     //或者是:
    $str = readfile("http://www.aliyun.com");
    

    没错,以上函数在某些情况下使用起来确实很方便,但是我感觉这几个函数不够灵活,也没法进行错误处理。而且,如果遇到要在php程序中向某个服务器提交表单数据,上传文件,处理cookies或者认证等任务时,以上三个函数根本无法胜任。这个时候,CURL就体现它的价值了。
    CURL不但支持很多的网络协议,而且提供了关于url请求的具体信息,很强大!

    CURL的简单使用步骤

    要使用cURL来发送url请求,具体步骤大体分为以下四步:
    1.初始化,创建一个新cURL资源
    2.设置URL和相应的选项
    3.抓取URL并把它传递给浏览器
    4.关闭cURL资源,并且释放系统资源
    好,现在我们来用代码完成上述CURL的四步:

    //1.初始化,创建一个新cURL资源
    $ch = curl_init();
    //2.设置URL和相应的选项
    curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //3.抓取URL并把它传递给浏览器
    curl_exec($ch);
    //4.关闭cURL资源,并且释放系统资源
    curl_close($ch);
    

    上述四步中,其中第二步最为关键,可以设置一些高级选项,详见PHP手册函数介绍:

    curl_setopt

    看到了吧,只要在第二个函数之内设置这些选项就可以完成相应的功能,cURL的功能是灰常强大滴,大家可以尝试一下哦!

    例如,我们只想把获取到的内容输入到文件,而不是直接输出给浏览器,我们就可以使用CURLOPT_RETURNTRANSFER选项!

    这样在curl执行的时候,就会把页面的内容输出到文件当中,我们就可以完成采集等功能啦!

    效率方面,curl的原理是模拟浏览器的操作,它的效率要比file_get_contents()高出四倍以上,试想一下,我们

    要采集一个信息量特别庞大的站,运行效率的差别可想而知!

    不单单是效率上,稳定性上来说,curl也远比file_get_contents()函数要好很多!

    这就是强大的curl,下文将给大家详细介绍它的高级应用,我们可以模拟浏览器的post传值,甚至上传!

    相关文章

      网友评论

          本文标题:CURL

          本文链接:https://www.haomeiwen.com/subject/gifslxtx.html