curl 转 PHP 转换器
在你的浏览器中即时将 curl 命令转换为 PHP cURL 代码。命令留在你的设备上。
你的 curl 命令在浏览器本地转换为 PHP,绝不会上传,但请避免将真实的生产令牌或凭据粘贴到任何工具中。
也需要一个 JavaScript 版本?试试 cURL 转 Fetch。
关于 curl 转 PHP
这款 curl 转 php 转换器会把一个 curl 命令转换为一份使用内置 cURL 扩展的 PHP 脚本,而这正是大多数 PHP 开发者调用 API 时常用的客户端。它会读取 -X、-H、-d、--data-raw、--json、-u、-b 和 -G 等标志,并生成一个通过单次 curl_setopt_array() 调用配置的 curl_init() 句柄,用 CURLOPT_HTTPHEADER 设置你的请求头、用 CURLOPT_POSTFIELDS 设置请求体。结果通过 CURLOPT_RETURNTRANSFER 返回响应并打印 HTTP 状态码,因此它能直接嵌入控制器、脚本或快速测试中。用它把一个终端里的 curl 请求迁移到 PHP 中,无需记住每一个 CURLOPT_ 常量。转换在你的浏览器中运行,因此命令及其中的任何令牌都在你的设备上本地处理,绝不会上传。
功能特性
- 生成一个通过单次 curl_setopt_array() 调用配置的 curl_init() 句柄
- 将 CURLOPT_CUSTOMREQUEST 设为从 curl 标志推断出的方法
- 将 -H/--header 标志映射为一个由 Name: Value 字符串组成的 CURLOPT_HTTPHEADER 数组
- 通过 CURLOPT_POSTFIELDS 发送请求体
- 将 -u/--user 转换为 Basic 认证头,并处理 cookie、user-agent 和 referer
- 将 -G/--get 的数据作为查询字符串追加到 URL
- 用 CURLOPT_RETURNTRANSFER 返回请求体,并用 curl_getinfo 读取状态
- 一键复制结果或将其下载为 request.php
如何使用 curl 转 PHP
- 将你的 curl 命令粘贴到 cURL 命令框中。
- 在输出面板中查看生成的 PHP cURL 脚本。
- 查看警告横幅,了解被调整或跳过的标志。
- 点击「复制」,或将文件下载为 request.php。
示例
输入
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"Ada"}'
输出
<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.example.com/users',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => '{"name":"Ada"}',
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status . "\n";
echo $response;
请求头变成一个 CURLOPT_HTTPHEADER 数组,请求体放进 CURLOPT_POSTFIELDS。
常见错误与故障排除
- Call to undefined function curl_init()。 — PHP cURL 扩展未启用。请安装或启用 ext-curl(例如在 Debian/Ubuntu 上的 php-curl),然后重启 PHP。
- curl_exec 返回 false,而不是一个响应。 — 句柄上发生了错误。在 curl_close 之前添加 curl_error($ch) 查看原因,并检查 URL、TLS 和请求头。
- CURLOPT_HTTPHEADER 中的请求头被服务器忽略。 — 每个条目必须是单个 "Name: Value" 字符串。转换器会按此格式化它们;如果你编辑它们,请保留冒号和空格。
常见问题
- 如何将 curl 命令转换为 PHP?
- 将 curl 命令粘贴到输入框中,转换器会在右侧呈现一份 PHP cURL 脚本,你可以复制它或下载为 request.php。
- 输出使用 PHP cURL 扩展还是 Guzzle?
- 它使用原生的 PHP cURL 扩展(curl_init、curl_setopt_array、curl_exec),因此没有需要安装的 Composer 依赖。
- 请求头在 PHP 代码中如何表示?
- 每个 -H 请求头都会变成 CURLOPT_HTTPHEADER 数组中的一个 "Name: Value" 字符串,由 curl_setopt_array 传给句柄。
- 请求体在生成的 PHP 中放在哪里?
- 请求体被赋给 CURLOPT_POSTFIELDS,而 CURLOPT_CUSTOMREQUEST 携带 HTTP 方法,因此它适用于 POST、PUT、PATCH 和 DELETE。
- 我把 curl 转换为 PHP 时命令会被上传吗?
- 不会。curl 转 php 的转换完全在你的浏览器中运行,因此命令及其中的任何凭据都留在你的设备上。
相关工具
全部 ArrayKit 工具