您的位置:首页 > 理论基础 > 计算机网络

$_POST、php://input、$GLOBALS["HTTP_RAW_POST_DATA"]的区别

2017-08-17 21:49 639 查看
$_POST接受不到页面传值,此时可以用php://input来接收.

$http_raw_post_data是PHP内置的一个全局变量.它用于PHP在无法识别Content-Type的情况下

将POST传递过来的数据原样地填入$http_raw_post_data.

它同样无法接收Content-Type为multipart/form-data的POST数据

需要设置php.ini中的always_populate_raw_post_data值为On

PHP才会总把POST数据填入变量$http_raw_post_data

然后$_POST以关联数组的方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换

php://input 通过输入流文件读取方式取得未经处理的POST原始数据

php://input 允许读取POST的原始数据.

相比于$HTTP_RAW_POST_DATA,php://input给内存带来的压力较小,且不需要任何php.ini设置

php://input不适用于enctype=”multipart/form-data”

php://input读取不到任何$_GET数据.因为$_GET数据作为query_path写在http请求头部(header)在PATH字段,而不是写在请求的body部分.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: