PHP篇之php://input理解
来源:互联网 发布:steam 知乎 编辑:程序博客网 时间:2024/05/01 18:21
PHP输入流php://input
在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input
对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述:
“php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype=”multipart/form-data”.
翻译过来,是这样:
“php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data”
我们应该怎么去理解这段概述呢?我把它划分为三部分,逐步去理解:
- 读取POST数据
- 不能用于multipart/form-data类型
- php://input VS $HTTP_RAW_POST_DATA
读取POST数据
PHPer们一定很熟悉$_POST这个内置变量。$_POST与php://input存在哪些关联与区别呢?另外,客户端向服务端交互数据,最常用的方法除了POST之外,还有GET。既然php://input作为PHP输入流,它能读取GET数据吗?这二个问题正是我们这节需要探讨的主要内容。
1.Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST2,PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA
3, 只有Coentent-Type不为multipart/form-data的时候,PHP不会将http请求数据包中的相应数据填入php://input,否则其它情况都会。填入的长度,由Coentent-Length指定。
4,只有Content-Type为application/x-www-data-urlencoded时,php://input数据才跟$_POST数据相一致。
5,php://input数据总是跟$HTTP_RAW_POST_DATA相同,但是php://input比$HTTP_RAW_POST_DATA更凑效,且不需要特殊设置php.ini
6,PHP会将PATH字段的query_path部分,填入全局变量$_GET。通常情况下,GET方法提交的http请求,body为空。
0 0
- PHP篇之php://input理解
- php之php://input
- php://input
- php://input
- php://input
- php ://input
- 深入理解PHP之OpCode
- 深入理解PHP之OpCode
- 深入理解PHP之OpCode
- 深入理解PHP之OpCode
- php之$_SESSION的理解
- file_get_contents("php://input") php://input 输入流
- PHP输入流php://input
- PHP输入流php://input
- PHP输入流php://input
- PHP输入流php://input
- PHP输入流php://input
- PHP输入流php://input
- 使用navicat在本地windows环境创建测试数据库
- Quick-cocos2d-x 与COCOS2DX 区别
- web.xml 配置Filter
- OpenSSL库中加密组件使用的相关链接
- IT忍者神龟之理解回顾面向对象的 JavaScript
- PHP篇之php://input理解
- C/C++中结构体的字节对齐以及求sizeof()
- Android 使用 Application
- 十款HTML5/JQUERY 图片动画效果
- Java中的多态
- Vbox中Ubuntu与windows共享文件夹
- debug01:”The project was not built since its build path is incomplete.“问题原因及破解
- Maven常用命令-创建Web项目
- 京东2015 笔试 编程题