FEATURED · 精选文章

php://input是干什么的?

发布时间 / 2026/8/26 13:53:32
来源 / 创域科博编辑部
栏目 / 资讯中心
php://input是干什么的? php://input是一个特殊的 PHP I/O 流它允许你直接访问请求的原始数据。当你发送一个 HTTP 请求到 PHP 脚本时请求的数据如 POST 数据、PUT 数据或其他请求体中的数据可以通过php://input流来读取。底层原理在底层当一个 HTTP 请求到达 PHP 解释器时请求的数据会被保存在内存中或者在某些情况下如果数据很大它可能会被保存在临时文件中。php://input提供了一个统一的接口来访问这些数据无论数据是保存在内存还是文件中。这个流是只读的而且只能读取一次。这意味着如果你尝试第二次从php://input读取数据你将得不到任何数据因为流已经被消耗掉了。通俗讲解想象你寄了一封信HTTP 请求给一个朋友PHP 脚本。信里面包含了一些信息比如你问他一个问题或者告诉他一个秘密请求体中的数据。当你的朋友收到信后他可以通过打开信封php://input来读取里面的内容。但是他只能打开信封一次因为一旦信封被打开并且内容被取出来就不能再次打开同一个信封了。完整的 PHP 实例代码下面是一个简单的 PHP 脚本示例展示了如何使用php://input来读取 POST 请求中的数据?php // 检查是否是 POST 请求 if ($_SERVER[REQUEST_METHOD] POST) { // 使用 php://input 读取请求的原始数据 $rawData file_get_contents(php://input); // 将原始数据解码为关联数组假设发送的是 JSON 数据 $decodedData json_decode($rawData, true); // 检查解码是否成功并输出数据 if ($decodedData ! null) { echo Received data:\n; print_r($decodedData); } else { echo Error decoding data!; } } else { echo This script only accepts POST requests.; } ?在这个示例中我们首先检查请求的方法是否是 POST。如果是我们使用file_get_contents(php://input)来读取请求的原始数据。然后我们尝试使用json_decode函数将数据解码为一个关联数组这里假设发送的是 JSON 格式的数据。最后我们检查解码是否成功并输出接收到的数据。请注意为了测试这个脚本你需要发送一个包含 JSON 数据的 POST 请求到它。你可以使用工具如 cURL 或 Postman 来发送请求。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻