php获取post中的json数据的实现方法


Posted in PHP onJune 08, 2011

突然想到了以前接触过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的HTTP_RAW_POST_DATA
用Content-Type=text/xml 类型,提交一个xml文档内容给了php server,要怎么获得这个POST数据。
The RAW / uninterpreted HTTP POST information can be accessed with: $GLOBALS['HTTP_RAW_POST_DATA'] This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).
由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml的内容无法解析为$_POST数组,故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收。
另外还有一项 php://input 也可以实现此这个功能
php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。

应用

a.htm

<form action="post.php" method="post"> 
<input type="text" name="user"> 
<input type="password" name="password"> 
<input type="submit"> 
</form>

post.php
<? echo file_get_contents("php://input");?>
PHP 相关文章推荐
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
PHP运行模式汇总
Nov 06 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 #PHP
apache+php完美解决301重定向的两种方法
Jun 08 #PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 #PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 #PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 #PHP
php写的简易聊天室代码
Jun 04 #PHP
php结合表单实现一些简单功能的例子
Jun 04 #PHP
You might like
PHP和.net中des加解密的实现方法
2013/02/27 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
AngularJS封装指令方法详解
2016/12/12 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
关于礼仪的演讲稿
2014/01/04 职场文书
代领毕业证委托书
2014/08/02 职场文书
整改通知书格式
2015/04/22 职场文书
2015年女职工工作总结
2015/05/15 职场文书
小孩不笨观后感
2015/06/03 职场文书
《社戏》教学反思
2016/02/22 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL