WithCoderWithCoderWithCoder

PHP中cURL发送网络请求的四个主要函数介绍

    我们前面的文章中介绍了“PHP的cURL的简单概念”,并简单封装了发送网络请求的get和post函数。本文介绍使用cURL发起网络请求时使用的四个主要函数(步骤):

    1. curl_init:初始化cURL会话

    2. curl_setopt:设置请求选项

    3. curl_exec:执行cURL会话并且获取相关回复

    4. curl_close:关闭cURL会话

    下面的代码简单的演示了cURL请求的过程四个主要函数(步骤):   

/**
* @param $url url
* @param $params 参数关联数组
* @param array $headers 头数组
* @return bool|string
*/
function post($url, $params, $headers = [])
{
   // 1. 初始化cURL会话
   $curl = curl_init();

   // 2. 设置请求选项
   curl_setopt($curl, CURLOPT_URL, $url); // 请求的url地址
   curl_setopt($curl, CURLOPT_HEADER, 0); // 设置是否将头文件的信息作为数据流输出
   curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); // 设置请求头信息
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 设置为TRUE时将curl_exec()获取的信息以字符串返回,而不是直接输出
   curl_setopt($curl, CURLOPT_POST, 1);
   curl_setopt($curl, CURLOPT_POSTFIELDS, $params); //设置post数据

   // 3. 执行cURL会话并且获取相关回复
   $data = curl_exec($curl);

   // 4. 关闭cURL会话
   curl_close($curl);

   return $data;
}

   1. curl_init:初始化cURL会话

    curl_init ([ string $url = NULL ] ) : resource

    curl_init()函数初始化新的会话,并返回一个 cURL 句柄,供后续的curl_setopt()、 curl_exec() 和 curl_close() 函数使用。

    如果调用该函数时提供了请求的网络$url参数,CURLOPT_URL 选项将会被设置成这个值。当然,在调用时我们也可以不传$url参数,然后再第二步中使用curl_setopt()函数手动地设置请求的网络url。

    当调用成功后,curl_init()函数返回cURL 句柄;否则,函数返回 false。   

    2. curl_setopt:设置请求选项

    curl_setopt ( resource $ch , int $option , mixed $value ) : bool

     curl_setopt()函数用来为 cURL 会话句柄设置选项。函数的第一个参数$ch为 cURL 句柄,第二个参数$option为需要设置的选项,第三个参数$value为设置选项的值。

    在设置成功时该函数返回 TRUE, 失败时返回 FALSE。

    具体的选项和设置,本文不做详细介绍,可以参考https://www.php.net/manual/zh/function.curl-setopt.php

    3. curl_exec:执行cURL会话并且获取相关回复

    curl_exec ( resource $ch ) : mixed

    curl_exec()函数执行给定的 cURL 会话。这个函数应该在初始化一个 cURL 会话并且全部的选项都被设置后被调用。

    注意:

    1. 此函数执行成功时返回 TRUE, 失败时返回 FALSE。 然而,如果设置了 CURLOPT_RETURNTRANSFER 选项,函数执行成功时会返回执行的结果,失败时返回 FALSE 。

    2. 此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值(如0,空字符串("")等)。因此,如果需要判断此函数的返回值,应使用 === 运算符来测试此函数的返回值。

    4. curl_close:关闭cURL会话

    curl_close ( resource $ch ) : void

    curl_close()函数关闭 cURL 会话并且释放所有资源,同时,cURL 句柄 ch 也会被删除。    

欢迎分享交流,转载请注明出处:WithCoder » PHP中cURL发送网络请求的四个主要函数介绍