栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP“ php:// input”与$ _POST

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP“ php:// input”与$ _POST

原因是

php://input
无论内容类型如何,都将在请求的HTTP标头之后返回所有原始数据。

PHP superglobal

$_POST
包装以下任一数据

  • application/x-www-form-urlenpred
    (用于简单表单发布的标准内容类型)或
  • multipart/form-data
    (主要用于文件上传)

这是因为这些是用户代理 _必须_支持的唯一内容类型。因此,服务器和PHP传统上不希望接收任何其他内容类型(这并不意味着它们不能)。

因此,如果您只发布一个好的旧HTML

form
,则请求看起来像这样:

POST /page.php HTTP/1.1key1=value1&key2=value2&key3=value3

但是,如果您经常使用Ajax,那么这种可能性还包括使用类型(字符串,整数,布尔值)和结构(数组,对象)交换更复杂的数据,因此在大多数情况下,JSON是最佳选择。但是带有JSON有效负载的请求看起来像这样:

POST /page.php HTTP/1.1{"key1":"value1","key2":"value2","key3":"value3"}

现在的内容是

application/json
(或至少没有上述内容),因此PHP的
$_POST
-wrapper不知道该如何处理。

数据仍然在那里,您只是无法通过包装器访问它。因此,您需要使用

file_get_contents('php://input')
(只要未
multipart/form-data
编码)原始格式来获取它。

这也是您访问XML数据或任何其他非标准内容类型的方式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号