📜  php curl_exec 获取响应 json - PHP (1)

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

php curl_exec 获取响应 json - PHP

在开发过程中,我们经常需要通过网络请求获取服务器的返回结果。在 PHP 中,我们可以使用 curl 库来实现这个功能。curl 库是一个在多种协议下工作的开源库,支持 HTTP、HTTPS、FTP 等协议。在使用 curl 请求后,服务器返回的结果可能是 JSON 等格式的数据,我们需要通过 curl_exec 函数获取这些数据。

curl_exec 函数

curl_exec 函数是 curl 库中的一个核心函数,用于执行一个 curl 会话并返回服务器的响应结果。该函数的使用方法如下:

string curl_exec ( resource $ch )

参数 $ch 是由 curl_init() 返回的 curl 句柄。成功时,本函数返回字符串类型的服务器响应结果,失败时返回 false。

获取 JSON 格式的响应

当服务器返回的结果是 JSON 格式时,我们需要使用 json_decode 函数将返回结果从字符串类型转换为 PHP 数组类型。具体方法如下:

// 初始化一个 curl 句柄
$ch = curl_init();

// 设置请求的 URL 和其他参数
curl_setopt($ch, CURLOPT_URL, "http://example.com/api");    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

// 执行请求并获取响应结果
$response = curl_exec($ch);

// 判断请求是否成功
if (curl_errno($ch)) {
    $error_msg = curl_error($ch);
    echo "curl error: $error_msg";
}

// 关闭 curl 句柄
curl_close($ch);

// 将响应结果从字符串类型转换为 PHP 数组类型
$result = json_decode($response, true);

// 打印结果
print_r($result);

在上面的代码中,我们首先初始化了一个 curl 句柄 $ch,然后设置了请求的 URL 和其他参数,并执行了请求。如果请求成功,就将返回的响应结果字符串类型的 $response 使用 json_decode() 函数转换为 PHP 数组类型,然后打印结果。

注意,在使用 json_decode() 函数时,需要将第二个参数设置为 true,表示将 JSON 对象转换为 PHP 关联数组类型。如果将第二个参数设置为 false 或不设置,将返回 PHP 对象类型。

总结

curl_exec 函数是 curl 库中的核心函数,用于执行一个 curl 会话并返回服务器的响应结果。当服务器返回的结果是 JSON 格式时,我们需要使用 json_decode 函数将返回结果从字符串类型转换为 PHP 数组类型。以上就是使用 PHP curl_exec 函数获取响应 json 的方法。