文档章节

PHP 获取POST的最原始数据方法

Junn
 Junn
发布于 2013/07/30 01:46
字数 270
阅读 4349
收藏 23

一般我们都用$_POST或$_REQUEST两个预定义变量来接收POST提交的数据。但如果提交的数据没有变量名,而是直接的字符串,则需要使用其他的方式来接收。

方法一: 使用全局变量$GLOBALS['HTTP_RAW_POST_DATA']来获取。

在$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。而$_POST或$_REQUEST存放的是 PHP以key=>value的形式格式化以后的数据。 但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时 必须显式示指明Content-Type: application/x-www-form-urlencoded,POST的数据才会存放到 $GLOBALS['HTTP_RAW_POST_DATA']中。

方法二: 使用file_get_contents(“php://input”)来获取。

对于未指定 Content-Type 的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。

事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括二进制文件流也可以。

所以用方法二是最保险的方法。


四种常见的POST提交数据方式

本文转载自:http://www.webtiro.com/2977.html

共有 人打赏支持
Junn
粉丝 145
博文 412
码字总数 288918
作品 0
海淀
高级程序员
私信 提问
AJAX POST请求中参数以form data和request payload形式在php中的获取方式

一.MINE TYPE问题: php对mime type为“application/x-www-form-urlencoded”(表单提交)和“multipart/form-data”(文件上传)的Post请求的数据作特殊处理 下面以“multipart/form-data”...

niluchen
2015/09/11
0
0
php post获取所有提交

php获取post参数的几种方式 1、$POST['paramName'] 只能接收Content-Type: application/x-www-form-urlencoded提交的数据 2、filegetcontents("php://input") 适用大多数类型的Content-type ......

bo-少
2016/05/05
37
0
file_get_contents("php://input")的使用方法

$data = filegetcontents("php://input"); php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTPRAWPOSTDATA,因为它不依赖于特定的 ph...

leycau
2015/10/20
3.7K
0
php://input、$_POST 和 $HTTP_RAW_POST_DATA 的区别与详解

PHP 用于开发 webservice 的 API 接口与客户端做数据交互时不一定会使用 PHP 可以处理的数据格式进行通信,比如 API 常用的 json xml,在此场景下我们需要使用其他的方式获取客户端发来的数据...

big_cat
2016/03/04
235
0
php获取输入流

uc中的用到的代码(在api/uc.php)代码: $post = xmlunserialize(fileget_contents('php://input')); php手册(http://cn.php.net/manual/zh/wrappers.php.php)说明: php://input allows ......

wangtaotao
2011/02/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringCloud 与 SpringBoot 的版本兼容

Spring Cloud Finchley 构建并使用 Spring Boot 2.0.x,预计不会与Spring Boot 1.5.x一起使用Spring Cloud Edgware Spring Boot 1.5.xDalston 和 Edgware 发布版基于Spring Boot 1......

晨猫
4分钟前
0
0
microtime 记录的时间点,以毫秒来显示,并显示每一阶段占用百分比。统计代码执行时间。

function mini_bench_to($arg_t, $arg_ra=false){ $tttime=round((end($arg_t)-$arg_t['start'])*1000,4); if ($arg_ra) $ar_aff['total_time']=$tttime; else $aff="total......

lwkai
5分钟前
0
0
Docker 解决容器时间与主机时间不一致的问题三种解决方案

这篇文章主要介绍了Docker 解决容器时间与主机时间不一致的问题的相关资料,这里提供了三种方法,供大家参考,需要的朋友可以参考下 Docker容器时间与主机时间不一致 通过date命令查看时间 查...

Jack088
7分钟前
0
0
neo4j 开启远程web访问7474端口 以 用浏览器打开远程neo4j的web控制台界面

一、对于3.0以前的版本 在安装目录的 $NEO4J_HOME/conf/neo4j.conf 文件内,找到下面一行,将注释#号去掉就可以了 #dbms.connector.https.address=localhost:7474 改为 dbms.connector.https...

Airship
7分钟前
0
0
集合排序

根据指定规则,对集合元素进行自定义排序 List<Map<String, Object>> list= data.stream().sorted(new Comparator<Map>() { @Override public int compare(Map o1, Map o2) { Comparator c =......

zhaochaochao
9分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部