PHP cURL 函数


PHP cURL 函数是一个用于发送HTTP请求的库。该函数可用于向其他服务器发送请求并获取响应。本文将对PHP cURL函数进行详细的解释。

在PHP中,要使用cURL函数,必须先创建一个cURL句柄。这可以通过调用curl_init函数来完成:

$curl_handle = curl_init();

在创建cURL句柄之后,我们需要设置请求的URL。这可以使用curl_setopt函数来完成。例如,我们可以设置URL如下:

curl_setopt($curl_handle, CURLOPT_URL, 'http://example.com');

除此之外,还可以设置一系列其他选项,例如请求的类型,请求头,请求超时等,下文将对这些选项进行详细解释。

一. 设置请求类型

使用curl_setopt函数,可以设置cURL请求的类型。常见的请求类型有HTTP GET和HTTP POST。请求类型可以用下面的代码设置:

// 设置HTTP GET请求
curl_setopt($curl_handle, CURLOPT_HTTPGET, true);

// 设置HTTP POST请求
curl_setopt($curl_handle, CURLOPT_POST, true);

二. 设置请求头

通过curl_setopt函数,我们还可以设置HTTP请求头。这可以使用PHP数组来完成。例如,我们可以将以下代码添加到我们的代码中:

$headers = array(
    'Content-Type: application/json',
    'Authorization: Bearer abcdefg123456',
);

curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);

三. 设置请求超时

在cURL请求中,我们还可以设置请求超时时间。这可以通过curl_setopt函数中的CURLOPT_TIMEOUT选项来完成:

// 设置请求超时时间为5秒
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 5);

四. 发送请求并获取响应

一旦我们设置了cURL选项,就可以使用curl_exec函数发送请求并获取响应。例如:

$response = curl_exec($curl_handle);

if($response === false) {
    echo 'cURL Error: ' . curl_error($curl_handle);
} else {
    echo 'Response: ' . $response;
}

五. 关闭cURL会话

在使用完cURL之后,我们需要使用curl_close函数关闭cURL会话:

curl_close($curl_handle);

六. 完整示例

下面是一个完整的使用PHP cURL函数发送HTTP请求并获取响应的示例:

$curl_handle = curl_init();

curl_setopt($curl_handle, CURLOPT_URL, 'http://example.com');
curl_setopt($curl_handle, CURLOPT_HTTPGET, true);

$headers = array(
    'Content-Type: application/json',
    'Authorization: Bearer abcdefg123456',
);

curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 5);

$response = curl_exec($curl_handle);

if($response === false) {
    echo 'cURL Error: ' . curl_error($curl_handle);
} else {
    echo 'Response: ' . $response;
}

curl_close($curl_handle);

通过本文,我们了解了PHP中cURL函数的基本工作原理、常见选项以及发送HTTP请求并获取响应的完整示例。