<?php
// 检查是否是POST请求并且有输入数据
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($GLOBALS['HTTP_RAW_POST_DATA'])) {
// 获取原始POST数据
$json = $GLOBALS['HTTP_RAW_POST_DATA'];
// 解码JSON数据为PHP数组
$data = json_decode($json, true);
// 检查解码是否成功
if (json_last_error() === JSON_ERROR_NONE) {
// 成功解码后的处理逻辑
echo "接收到的数据: ";
print_r($data);
} else {
// JSON解码失败的处理逻辑
echo "JSON解码失败";
}
} else {
// 不是POST请求或没有POST数据
echo "无效的请求";
}
?>
$_SERVER['REQUEST_METHOD'] 确认请求是否为 POST 方法。$GLOBALS['HTTP_RAW_POST_DATA'] 获取原始的 POST 数据。注意,从 PHP 5.6 开始,建议使用 file_get_contents('php://input') 来替代 $GLOBALS['HTTP_RAW_POST_DATA'],因为后者在某些配置下可能不可用。json_decode 函数将 JSON 格式的字符串转换为 PHP 数组。第二个参数 true 表示将 JSON 对象转换为关联数组。json_last_error() 检查 JSON 解码是否有误。如果你需要更现代的代码,可以使用 file_get_contents('php://input') 替代 $GLOBALS['HTTP_RAW_POST_DATA']:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 获取原始POST数据
$json = file_get_contents('php://input');
// 解码JSON数据为PHP数组
$data = json_decode($json, true);
// 检查解码是否成功
if (json_last_error() === JSON_ERROR_NONE) {
// 成功解码后的处理逻辑
echo "接收到的数据: ";
print_r($data);
} else {
// JSON解码失败的处理逻辑
echo "JSON解码失败";
}
} else {
// 不是POST请求或没有POST数据
echo "无效的请求";
}
?>
上一篇:php get
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站