PHP 伪协议:使用 php://input 访问原始 POST 数据
php://input
是一种只读流,可以用来访问请求的原始数据。当请求方法为 POST 且 Content-Type 不是 'application/x-www-form-urlencoded' 或 'multipart/form-data' 时,可以使用 php://input
读取非表单数据,如 JSON, XML 或文本。
以下是一个使用 php://input
读取原始 POST 数据的 PHP 脚本示例:
<?php
// 确保请求方法为 POST
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 读取原始 POST 数据
$rawPostData = file_get_contents('php://input');
// 解码 JSON 数据为 PHP 数组
$data = json_decode($rawPostData, true);
// 处理数据
if (is_array($data)) {
// 例如,可以访问 $data 中的数据
echo "接收到的数据: name - " . $data['name'] . ", age - " . $data['age'];
} else {
echo "没有接收到有效的 JSON 数据。";
}
} else {
echo "请使用 POST 方法请求。";
}
?>
在这个例子中,我们首先检查请求方法是否为 POST。然后,我们使用 file_get_contents('php://input')
读取原始 POST 数据,假设发送的是 JSON 格式数据,并使用 json_decode
函数将其转换为 PHP 数组。最后,我们根据是否成功解析数据来处理数据或给出错误提示。
评论已关闭