探索 PHP curl 高级应用:从接口请求到文件下载

2025-12-10 30阅读

文章最后更新时间:2025年12月11日

curl 是 PHP 处理网络请求的强大工具,不仅能发送 GET/POST 请求调用 API,还能实现文件下载、Cookie 携带等高级功能。本文通过 2 个实战场景,带你掌握 curl 的进阶用法。

20241023123443172965808376734.jpeg

一、实战 1:发送 POST 请求(带 JSON 参数)

<?php
$url = "https://api.example.com/user";
// POST参数(JSON格式)
$data = json_encode(["name" => "张三", "age" => 20]);

// 初始化curl
$ch = curl_init($url);
// 设置curl选项
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 设置请求头(JSON格式)
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Content-Length: " . strlen($data)
]);

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

// 解析响应
$result = json_decode($response, true);
print_r($result);
?>

二、实战 2:用 curl 下载远程文件

<?php
$remoteUrl = "https://example.com/image.jpg"; // 远程文件地址
$localPath = "./downloads/image.jpg"; // 本地保存路径

// 初始化curl
$ch = curl_init($remoteUrl);
$file = fopen($localPath, "w");
// 设置保存到文件
curl_setopt($ch, CURLOPT_FILE, $file);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 跟随重定向

// 执行下载
curl_exec($ch);
// 关闭资源
curl_close($ch);
fclose($file);

echo "文件下载完成!";
?>

总结

curl 是 PHP 网络请求的 “全能工具”,CURLOPT_POST实现 POST 请求,CURLOPT_FILE实现文件下载,CURLOPT_HTTPHEADER适配各类接口格式。开发中调用第三方 API、下载远程资源时,curl 能满足绝大多数需求,掌握其核心选项配置,就能灵活应对各类网络交互场景。
文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。