📜  php curl 示例 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:10.758000             🧑  作者: Mango

PHP cURL 示例

在 PHP 中,cURL 是一个用于与服务器进行通信的库。它支持多种协议,包括 HTTP, HTTPS, FTP 等。在本文中,将为您介绍如何使用 PHP cURL 发起 HTTP 请求,并处理响应。

安装 cURL 扩展

在使用 cURL 之前,需要确保已在 PHP 中启用了 cURL 扩展。如果尚未启用,可以通过下面的方法启用:

sudo apt-get install php7.4-curl
使用 cURL 发起 HTTP 请求
GET 请求

以下是使用 cURL 发起 GET 请求的示例:

$url = 'https://www.example.com/api/data';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

curl_close($ch);

echo $response;

在上面的示例中,首先创建一个 cURL 句柄,然后设置 URL 和 CURLOPT_RETURNTRANSFER 选项,以使用 cURL 获取并返回响应,最后关闭 cURL 句柄,输出响应。

POST 请求

以下是使用 cURL 发起 POST 请求的示例:

$url = 'https://www.example.com/api/data';
$data = array('name' => 'John Doe', 'email' => 'johndoe@example.com');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

curl_close($ch);

echo $response;

在上面的示例中,首先创建一个 cURL 句柄,然后设置 URL、POST 参数和 CURLOPT_RETURNTRANSFER 选项,以使用 cURL 发送 POST 请求并获取响应,最后关闭 cURL 句柄,输出响应。

处理响应

使用 cURL 发送请求并获取响应后,还需要对响应进行处理,以便根据需要从中提取数据。以下是一些处理响应的基本方法:

将响应解析为 JSON

如果响应是 JSON 格式的,可以使用 json_decode 函数将其解析为数组。示例如下:

$response = curl_exec($ch);

$data = json_decode($response, true);

var_dump($data);

在上面的示例中,将响应解析为数组,并使用 var_dump 函数输出。

获取响应中的头信息

可以使用 curl_getinfo 函数获取响应中的头信息。示例如下:

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

echo "Header: " . $header;
echo "Body: " . $body;

在上面的示例中,将响应拆分为头信息和响应体,并使用 echo 输出。

获取响应的 HTTP 状态码

可以使用 curl_getinfo 函数获取响应的 HTTP 状态码。示例如下:

$response = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($http_code == 200) {
    echo "Success";
} else {
    echo "Error";
}

在上面的示例中,获取响应的 HTTP 状态码,并根据状态码输出不同的信息。

总结

上文介绍了如何使用 PHP cURL 发起 HTTP 请求,并处理响应。使用 cURL 可以方便地与服务器进行通信,获取和处理服务器返回的数据。