HTTP_RAW_POST_DATA
官方文档解释:原生POST数据。需要通过php.ini开启,开启后可通过全局变量 $GLOBALS['HTTP_RAW_POST_DATA'] 获取到post数据。
需要设置 php.ini 中的
always_populate_raw_post_data
值为 On 才会生效不能用于 enctype="multipart/form-data"
PHP7中已经移除了这个全局变量,用 php://input 替代
- 相比php://input 需要更多的内存
php://input
php://input 访问各个输入/输出流。允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。POST 请求的情况下,最好使用php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候php://input 是无效的
不需要任何特殊的 php.ini 设置
不能用于 enctype="multipart/form-data"
- 数据获取方式 :$data = file_get_contents("php://input");
$_POST
可以看成是把$HTTP_RAW_POST_DATA过滤和格式化后的数据。识别的数据类型是PHP默认识别的数据类型 application/x-www.form-urlencoded
无法解析如text/xml,application/json等非 application/x-www.form-urlencoded 数据类型的内容
- 经验证不能用于enctype="text/plain"
- 经验证可用于enctype="multipart/form-data"
参考:
http://php.net/manual/zh/wrappers.php.php
http://www.php.net/manual/zh/reserved.variables.post.php
http://php.net/manual/zh/reserved.variables.httprawpostdata.php
原文地址:
HTTP_RAW_POST_DATA
官方文档解释:原生POST数据。需要通过php.ini开启,开启后可通过全局变量 $GLOBALS['HTTP_RAW_POST_DATA'] 获取到post数据。
需要设置 php.ini 中的
always_populate_raw_post_data
值为 On 才会生效不能用于 enctype="multipart/form-data"
PHP7中已经移除了这个全局变量,用 php://input 替代
- 相比php://input 需要更多的内存
php://input
php://input 访问各个输入/输出流。允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。POST 请求的情况下,最好使用php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候php://input 是无效的
不需要任何特殊的 php.ini 设置
不能用于 enctype="multipart/form-data"
- 数据获取方式 :$data = file_get_contents("php://input");
$_POST
可以看成是把$HTTP_RAW_POST_DATA过滤和格式化后的数据。识别的数据类型是PHP默认识别的数据类型 application/x-www.form-urlencoded
无法解析如text/xml,application/json等非 application/x-www.form-urlencoded 数据类型的内容
- 经验证不能用于enctype="text/plain"
- 经验证可用于enctype="multipart/form-data"
参考:
http://php.net/manual/zh/wrappers.php.php
http://www.php.net/manual/zh/reserved.variables.post.php
http://php.net/manual/zh/reserved.variables.httprawpostdata.php
原文地址:https://blog.youkuaiyun.com/kexiaoling/article/details/51858909
HTTP_RAW_POST_DATA
官方文档解释:原生POST数据。需要通过php.ini开启,开启后可通过全局变量 $GLOBALS['HTTP_RAW_POST_DATA'] 获取到post数据。
需要设置 php.ini 中的
always_populate_raw_post_data
值为 On 才会生效不能用于 enctype="multipart/form-data"
PHP7中已经移除了这个全局变量,用 php://input 替代
- 相比php://input 需要更多的内存
php://input
php://input 访问各个输入/输出流。允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。POST 请求的情况下,最好使用php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候php://input 是无效的
不需要任何特殊的 php.ini 设置
不能用于 enctype="multipart/form-data"
- 数据获取方式 :$data = file_get_contents("php://input");
$_POST
可以看成是把$HTTP_RAW_POST_DATA过滤和格式化后的数据。识别的数据类型是PHP默认识别的数据类型 application/x-www.form-urlencoded
无法解析如text/xml,application/json等非 application/x-www.form-urlencoded 数据类型的内容
- 经验证不能用于enctype="text/plain"
- 经验证可用于enctype="multipart/form-data"
参考:
http://php.net/manual/zh/wrappers.php.php
http://www.php.net/manual/zh/reserved.variables.post.php
http://php.net/manual/zh/reserved.variables.httprawpostdata.php