PHP输入流和表单提交类型浅析
来源:互联网 发布:淘宝设置满多少包邮 编辑:程序博客网 时间:2024/05/17 17:46
解读PHP的输入流
1,php://input 是一个只读的文件流,允许用户从http请求中读取原始数据。
在使用POST请求时,最好使用php://input来代替。为什么? 一个简单的$HTTP_RAW_POST_DATA不是可以读取了么?
因为 php://input 不依赖于php.ini 配置。(是啊,php.ini 那么多配置项,每次都看着让人头痛,累觉不爱是吗?)
2,默认情况下PHP只支持Content-Type为:application/x-www.form-urlencoded 类型的数据。
使用 php://input 和 HTTP_RAW_POST_DATA 都可以处理Content-Type=text/xml 类型的数据。可以这样用
<?php $postdata = file_get_contents("php://input"); ?>但 php://input不能处理enctype="multipart/form-data"类型的请求。
3,_POST数据可以看做是将HTTP_RAW_POST_DATA分离成若干键值对后的数据
$HTTP_RAW_POST_DATA 应该是这个样 key1=value1&key2=value2
那么$_POST这个数组则应该是这个样子:
$_POST = array( "key1" => "value1", "key2" => "value2",);。
注意:
一个用php://input打开的流只能读一次,由于SAPI的实现问题,这个流对象不支持seek操作。
这样,你只能打开另一个php://input并重新读取,当然,前提是请求数据已经保存下来。
通常,这事POST请求时的情况,其它如PUT或者PROPFIND的请求方式则不能这样操作。
4, 提交表单时,enctype 指的是form里的content-type。(也是http报文中的header)
application/x-www-form-urlencoded 是浏览器默认的content-type.
此外还有multipart/form-data。
如果还有其它内容类型,那么这种未定义的数据如何处理是未定义的。浏览器将会直接忽略这些封装类型并且不会报错。
比如,有一种内容类型是 application/octet-stream,那么浏览器就会把它当作一块结构未知的数据块发出去。
至于服务器怎么去处理这些数据。我们下次来好好探讨下。
、
- PHP输入流和表单提交类型浅析
- 表单和ajax提交浅析
- PHP 表单和用户输入
- PHP 表单和用户输入
- PHP 表单和用户输入
- HTML5表单提交和PHP环境搭建
- HTML5表单提交和PHP环境搭建
- 表单Form提交数据和PHP数据处理
- php输入流php://input使用浅析
- PHP中的表单和用户输入
- PHP 表单和用户输入方法
- PHP模拟表单提交
- PHP 表单提交
- php表单提交 代码
- php 表单提交
- php 提交表单
- PHP提交表单
- php 提交表单 数据类型
- 指数增长模型
- SD卡fat文件系统移植
- Leetcode: Linked List Cycle
- [BZOJ]2127: happiness 最小割
- UVa 10801 Lift Hopping / floyd
- PHP输入流和表单提交类型浅析
- 电子眼拍原理
- NYOJ 125 盗梦空间
- pygame模块中的小游戏。
- lucene3.6.2之自定义评分
- linux分布式编译:distcc配置方法--转
- 入门HTML之align 单元格间距cellspacing 单元格边距cellpadding
- win8图片默认不显示
- java,为什么float f1=0.1是错的? 0.1是double类型的么?为什么?谢