Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php post json

作者:末世修罗   发布日期:2026-03-29   浏览:66

<?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 "无效的请求";
}

?>

解释说明:

  1. 检查请求方法:通过 $_SERVER['REQUEST_METHOD'] 确认请求是否为 POST 方法。
  2. 获取原始 POST 数据:使用 $GLOBALS['HTTP_RAW_POST_DATA'] 获取原始的 POST 数据。注意,从 PHP 5.6 开始,建议使用 file_get_contents('php://input') 来替代 $GLOBALS['HTTP_RAW_POST_DATA'],因为后者在某些配置下可能不可用。
  3. 解码 JSON 数据:使用 json_decode 函数将 JSON 格式的字符串转换为 PHP 数组。第二个参数 true 表示将 JSON 对象转换为关联数组。
  4. 错误处理:使用 json_last_error() 检查 JSON 解码是否有误。
  5. 输出结果:根据解码结果输出相应的信息。

如果你需要更现代的代码,可以使用 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

下一篇:php array to string conversion

大家都在看

php session用法

php 定义常量

php soapclient

phpisset函数

php html转图片

php后端

php爬虫框架

php多线程与并发

php读取csv文件

php+mysql动态网站开发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站