美文网首页
Curl的简单使用步骤

Curl的简单使用步骤

作者: 半阳666 | 来源:发表于2018-08-16 15:50 被阅读0次

Curl的简单使用步骤

一、curl的简单使用步骤

     1.初始化

     2.设置请求选项

     3.执行一个cURL会话并且获取相关回复

     4.释放cURL句柄,关闭curl

具体实现:

1. 初始化一个cURL会话

        $ch = curl_init();

     2. 设置请求选项

        curl_setopt($ch, CURLOPT_URL, "http://www.360weboy.com");

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_HEADER, 0);

     3. 执行Curl会话获取相关回复

         $response = curl_exec($ch);

     4. 释放Curl 句柄, 关闭Cur会话       

          curl_close($ch);

    二、curl 错误处理

        $response = curl_exec($ch); 

           if ($response  === FALSE) {

              echo "cURL 具体出错信息: " . curl_error($ch);

            }

    三、 获取curl请求的具体信息

       可以使用curl_getinfo获取该请求的具体信息:

          curl_exec($ch);

         $curl_info= curl_getinfo($ch);

          echo "收到的http回复的code为: {$curl_info['http_code']}";

     四. 使用curl 发送post请求

        $url = "http://www.360weboy.me/post.php";

         $post_data = array (

             "blog_name" => "360weboy",

             "blog_url" => "http://www.360weboy.com",

             "action" => "Submit"

          );

         $ch = curl_init();

         curl_setopt($ch, CURLOPT_URL, $url);

         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

         // 设置请求为post类型

         curl_setopt($ch, CURLOPT_POST, 1);

         // 添加post数据到请求中

         curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

          // 执行post请求,获得回复

         $response= curl_exec($ch);

         curl_close($ch);

         echo $response;

    五、 使用curl发送上传文件   

      代码如下:

         $url = "http://www.360weboy.me/upload.php";

        $post_data = array (

             "attachment" => "@E:/jackblog/boy.jpg"

        );

         //初始化cURL会话

        $ch = curl_init();

        //设置请求的url

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        //设置为post请求类型

        curl_setopt($ch, CURLOPT_POST, 1);

        //设置具体的post数据

        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

        $response = curl_exec($ch);

        curl_close($ch);

        print_r($response);

     六、文件下载

  上述将了文件上传,同样的也可以使用curl来自动地完成文件的下载以及保存。有一点要补充下,在执行一个curl请求时,如果你需要获取返回的内容,而不是直接输出返回的内容的话,别忘记使用下面的代码设置,因为curl的默认是输出请求的回复内容:

 代码如下:

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

     假如在360weboy的服务器根目录下面有一个test.zip文件,我们需要将其下载下来,并且保存到本地文件中,就可以尝试使用下面的代码来实现:

 代码如下:

        //设置请求的下载文件的url

        $url  = 'http://www.360weboy.com/test.zip';

        //保存到本地的文件路径

        $path = 'local/path/to/test.zip';

        //初始化请求,设置请求,获取回复,关闭会话

        $ch = curl_init($url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $data = curl_exec($ch);

        curl_close($ch);

        //将文件内容写入本地文件

        file_put_contents($path, $data);

   注意:我以上省略了错误处理方面的代码,只是简单做个示例, 在实际中,你还需要通过curl_getinfo函数来进行错误处理!

上述代码对于下载比较大型的文件是不适用的,因为需要先将文件读取到内存中,等所有内容都读取完毕,然后再写入到本地硬盘中。即使php中设置的memory limit非常大,这种情况对性能的影响也是很大的。所以,我们对于大型文件的下载,应该让curl来接管这个任务,实现边下载,边写入的处理,这样的话,就没什么问题了。请看下述代码:

 代码如下:

        $url  = 'http://www.360weboy.com/test.zip';

        $path = 'local/path/to/test.zip';

        // 打开本地文件

        $fp = fopen($path, 'w');

        // 告诉curl本地文件句柄

        $ch = curl_init($url);

        curl_setopt($ch, CURLOPT_FILE, $fp);

       curl_exec($ch);

        curl_close($ch);

        fclose($fp);

在上述代码中,我们先打开个本地文件,并将文件句柄设置到curl中,然后让curl一边读取远程数据,一边写入到本地文件中。因为我们不需要在程序中获取远程回复的内容了,所以只要执行请求就可以。

七、http 验证

    如果服务器端需要验证请求,可以通过类似一下示例代码来实现:

     代码如下:

      $url = "http://www.360weboy.com/users/";

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        // 设置用户名以及密码

        curl_setopt($ch, CURLOPT_USERPWD, "username:password");

        // 设置重导向

        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

        curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1);

        $response = curl_exec($ch);

        curl_close($ch);

 八、通过代理发送请求

        cURL还可以通过代理服务器来向发送请求,请看一下示例代码:

 代码如下:

         $ch = curl_init();

         curl_setopt($ch, CURLOPT_URL,'http://www.360weboy.com');

         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        // 设置代理ip地址

        curl_setopt($ch, CURLOPT_PROXY, '222.73.173.50:8080');

        // 要验证的话,这里设置用户名以及密码

        curl_setopt($ch, CURLOPT_PROXYUSERPWD,'username:password');

        $response = curl_exec($ch);

        curl_close ($ch);

相关文章

  • Curl的简单使用步骤

    Curl的简单使用步骤 一、curl的简单使用步骤 1.初始化 2.设置请求选项 3.执行一个cURL...

  • PHP CURL

    php 中使用curl的一般步骤 curl_init() 初始化curl句柄 curl_setopt() 设置请求...

  • curl发get、post请求

    环境配置 使用curl需要php.ini开启curl扩展、开启curl扩展的步骤如下 #vim /etc/php....

  • curl简单使用

    对于http调试,curl是一个很好用的工具,本篇文章主要记录curl日常的使用方法。 访问url 最基本的使用方...

  • mongodb

    gongodb的使用步骤 /usr/bin/ruby -e "$(curl -fsSL https://raw.g...

  • curl命令-简单使用

    安装 请戳这里下载,根据使用的平台,下载适用的版本即可。想全面了解可以下载一个说明文件:everything-cu...

  • Mac OSX 平台安装 MongoDB

    亲测可用的步骤: 使用 curl 命令来下载安装: 进入 /usr/local cd /usr/local 下载 ...

  • ElasticSearch之CURL操作

    CURL的操作curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/...

  • iOS开发Cocoapods安装错误error: RPC fai

    在使用新的电脑安装cocoapods是,最后的步骤 pod setup时,报错RPC failed; curl 5...

  • Linux curl使用简单介绍

    Curl是Linux下一个很强大的http命令行工具,其功能十分强大。 二话不说,先从这里开始吧! 回车之后,ww...

网友评论

      本文标题:Curl的简单使用步骤

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