PHP 获取 post 中的 json 数据

ext 与 PHP 交互时,ext 把 json 数据 post 给 PHP,但在 PHP里面 $_post 获取不到,$_REQUEST 也获取不到,但是通过 firedebug 看到的请求信息确实是把 JSON 数据 post 给了 PHP。

想到以前通过flash将图片二进制流传给 PHP,然后使用 $GLOBALS['HTTP_RAW_POST_DATA'] 后正常获取到数据。

PHP 默认只识别 application/x-www.form-urlencoded 标准的数据类型,因此,对型如 text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用 $_POST 数组来接收就会失败,故保留原型,交给 $GLOBALS['HTTP_RAW_POST_DATA'] 来接收。

另外还有一项 php://input 也可以实现此这个功能

file_get_contents("php://input");

php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。

原文地址:https://www.cnblogs.com/caly/p/3014071.html