博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php获取post参数的几种方式
阅读量:5307 次
发布时间:2019-06-14

本文共 1454 字,大约阅读时间需要 4 分钟。

PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。

 

php获取post参数的几种方式

1、$_POST['paramName'] 只能接收Content-Type: application/x-www-form-urlencoded提交的数据...php会将http请求body相应数据会 填入到数组$_POST,填入到$_POST数组中的数据是进行urldecode()解析的结果。(其实,除了该Content-Type,还有 multipart/form-data表示数据是表单数据)

 

2、file_get_contents("php://input") 适用大多数类型的Content-type

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

 

3、$GLOBALS['HTTP_RAW_POST_DATA']; 总是产生 $HTTP_RAW_POST_DATA  变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA  对于 enctype="multipart/form-data"  表单数据不可用。

如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。需要设置php.ini中的always_populate_raw_post_data值为On,PHP才会总把POST数据填入变 量$http_raw_post_data。

 

 

1,Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form- data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST

2,PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA
3, 只有Coentent-Type不为multipart/form-data的时候,PHP不会将http请求数据包中的相应数据填入php: //input,否则其它情况都会。填入的长度,由Coentent-Length指定。
4,只有Content-Type为application/x-www-data-urlencoded时,php://input数据才 跟$_POST数据相一致。
5,php://input数据总是跟$HTTP_RAW_POST_DATA相同,但是php://input 比$HTTP_RAW_POST_DATA更凑效,且不需要特殊设置php.ini
6,PHP会将PATH字段的query_path部分,填入全局变量$_GET。通常情况下,GET方法提交的http请求,body为空。

 

 

http://blog.163.com/hooky_2005/blog/static/5793523720104284204067/

转载于:https://www.cnblogs.com/zhepama/p/4022606.html

你可能感兴趣的文章
逻辑斯蒂回归(Logistic Regression)
查看>>
360前端面试题 2015年 07
查看>>
移动端页面使用rem布局
查看>>
谷歌中国ICP牌照过期 高管暗示员工自谋出路...
查看>>
视口viewport
查看>>
HDU1024解题报告
查看>>
js css 实现简单的计算器
查看>>
百度是如何识别原件及伪原创文章?
查看>>
各种加解密算法比較
查看>>
ExtJs自学教程(1):一切从API開始
查看>>
redis详解(四)--高可用分布式集群
查看>>
IntelliJ IDEA 添加类注释模板
查看>>
acdream.Bet(数学推导)
查看>>
Oracle层次查询
查看>>
vue调试工具之 vue-devtools的安装
查看>>
UCOS2_STM32F1移植详细过程(一)
查看>>
laravel的速查表
查看>>
5-24
查看>>
Javascript一些小细节
查看>>
Struct
查看>>