php://input输入流
官方文档解释
php://input
是个可以访问请求的原始数据的只读流。 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
$raw = file_get_contents("php://input");
print_r($raw);
?>
<form action="a.php" method="post">
<input type="text" name="user">
<input type="submit" value="submit">
</form>
上述可以获取到post方式提交的数据,但是使用get方式时,并不能获取到数据。
上面还提到$http_raw_post_data
,这又是个什么东西呢?
$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
。
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=812