几种php获取post数据的方式

2018-03-28


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://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" 表单数据不可用。


另外 $GLOBALS["HTTP_RAW_POST_DATA"] 在php 5.6 及以上版本会被移除,可以用下面的方式进行判断(学习老师的代码):

if(PHP_VERSION >= 5.6){
    $data = file_get_contents("php://input");}else{
    $data = $GLOBALS["HTTP_RAW_POST_DATA"];}


服务支持

我们珍惜您每一次在线询盘,有问必答,用专业的态度,贴心的服务。

让您真正感受到我们的与众不同!

0.041440s