使用php命令行调用API需编写脚本文件,通过php命令执行,利用curl扩展发送http请求。1. 创建php文件如api_call.php,命令行运行php api_call.php;2. 脚本中使用cURL设置URL、请求头、数据等,支持POST、GET、PUT、delete等方法;3. 通过CURLOPT_CUSTOMREQUEST设置请求类型,CURLOPT_POSTFIELDS传递数据;4. 可通过$argv接收命令行参数实现动态调用。掌握这些即可实现自动化API交互。

在PHP命令行中调用API接口,最常用的方式是使用cURL扩展。虽然你不能直接在终端输入“php curl”命令来发起请求(因为curl是PHP中的一个函数库,不是系统命令),但你可以编写php脚本,在命令行环境下运行该脚本来调用rest api。
1. 使用PHP命令行运行脚本调用API
你需要创建一个PHP文件(例如 api_call.php),然后通过命令行执行它:
php api_call.php
这个脚本内部使用cURL函数来发送HTTP请求到目标API。
2. PHP cURL调用REST API示例
以下是一个通过POST方法调用jsON格式API的典型例子:
立即学习“PHP免费学习笔记(深入)”;
api_call.php 内容:
// 目标API地址
$url = ‘https://jsonplaceholder.typicode.com/posts’;
// 初始化cURL句柄
$ch = curl_init();
// 设置POST数据
$postData = json_encode([
‘title’ => ‘测试标题’,
‘body’ => ‘这是内容’,
‘userId’ => 1
]);
// 配置cURL选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
‘Content-Type: application/json’,
‘Accept: application/json’
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 执行请求
$response = curl_exec($ch);
// 检查错误
if (curl_error($ch)) {
echo “请求出错: ” . curl_error($ch) . “n”;
} else {
echo “响应结果:n”;
print_r(json_decode($response, true));
}
// 关闭cURL资源
curl_close($ch);
?>
保存后,在终端运行:
php api_call.php
3. 支持GET、PUT、DELETE等其他HTTP方法
cURL可以灵活设置请求方式。例如,发送PUT请求:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘PUT’);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
DELETE请求类似:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘DELETE’);
GET请求则不需要POST相关设置,只需传参在URL中即可。
4. 命令行传参调用API
你还可以让脚本接收命令行参数,实现更灵活的调用方式。
例如运行:
php api_call.php post “Hello World”
对应获取参数代码:
$action = $argv[1] ?? ‘get’;
$content = $argv[2] ?? ”;
然后根据参数决定请求类型或内容。
基本上就这些。掌握cURL配置和命令行运行PHP脚本,就能轻松实现自动化api调用。


