PHP获取POST数据的三种方式

 百家乐-前端     |      2020-04-15 19:34

PHP怎么着得到表单的POST数据吧?本文介绍3种得到POST数据的方式,并将代码附上,希望得以扶助到你。

file_get_contents("php://input");

说明:
允许读取POST的原有数据。
和$HTTP_RAW_POST_DATA比起来,它给内部存款和储蓄器带来的下压力相当的小,况兼无需任何异样的php.ini设置。
php://input不能够用于enctype="multipart/form-data"。
解释:
对于未钦赐Content-Type的POST数据,则足以接收file_get_content("php://input"卡塔尔国;来得到原始数据。
实际上,用PHP选择POST的任何数据都足以行使本办法。而不要思忖Content-Type,富含二进制文件流也得以。
因此用艺术二是最保障的办法。

一、PHP获取POST数据的三种办法

措施1、最平淡无奇的措施是:$_POST['fieldname'];

说明:只可以抽出Content-Type: application/x-www-form-urlencoded提交的多少
分解:也便是表单POST过来的数量

方法2、file_get_contents(“php://input”);

说明:

同意读取 POST 的原本数据。
和 $HTTP_RAW_POST_DATA 比起来,它给内部存款和储蓄器带给的压力异常的小,而且无需其余异样的 php.ini 设置。
php://input 无法用于 enctype=”multipart/form-data”。

解释:

对此未钦定 Content-Type 的POST数据,则能够利用file_get_contents(“php://input”State of Qatar;来得到原始数据。
事实上,用PHP选取POST的其余数据都得以应用本办法。而不要考虑Content-Type,包蕴二进制文件流也能够。
故此用艺术二是最保证的主意

方法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 等等

解释:

$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']中

$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等等
解释:
$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']中。

上一篇:PHP魔术方法和魔术常量介绍及使用 下一篇:没有了