Home > php教程 > PHP源码 > body text

php中php://input和$_POST有什么不同

WBOY
Release: 2016-06-08 17:22:42
Original
951 people have browsed it

在php中php://input和$_POST有什么区别呢,post是我们常用的获取表单提交的数据的一个例子,但是php://input估计很多朋友和我一样没有怎么用过,下面我们就一起来看看吧。

<script>ec(2);</script>

我们先来看两个实例

例子:php://input

 代码如下 复制代码

 





post.php

 代码如下 复制代码

  echo file_get_contents("php://input");?>

例子,post

html

 代码如下 复制代码


Enter your name:
Enter your age:

welcome.php

 代码如下 复制代码
Welcome .

You are years old!

通过 HTTP POST 发送的变量不会显示在 URL 中。

当我们用$_POST接受不到页面传过来信息时,我们可以用php://input去接受值,那么他俩有什么区别

首先当$_POST 与 php://input可以取到值时$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。

然后$_POST以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换;
而php://input 通过输入流以文件读取方式取得未经处理的POST原始数据;

php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype=”multipart/form-data”;

php://input读取不到$_GET数据。是因为$_GET数据作为query_path写在http请求头部(header)的PATH字段,而不是写在http请求的body部分。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!