首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >file_get_contents("php://input")和$HTTP_RAW_POST_DATA,哪个更适合获取JSON请求的正文?

file_get_contents("php://input")和$HTTP_RAW_POST_DATA,哪个更适合获取JSON请求的正文?
EN

Stack Overflow用户
提问于 2010-04-29 00:20:28
回答 6查看 285.6K关注 0票数 128

file_get_contents("php://input")$HTTP_RAW_POST_DATA -哪个更适合获取JSON请求的正文?

在使用客户端XmlHTTPRequest时,我应该使用哪种请求类型(GETPOST)来发送JSON数据

我的问题的灵感来自于这个答案:How to post JSON to PHP with curl

引述自该答案:

从协议的角度来看,file_get_contents("php://input")实际上更正确,因为您实际上并不是在处理

多部分表单数据。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-04-29 00:42:54

实际上,php://input允许你读取原始的POST数据。

它是$HTTP_RAW_POST_DATA的内存消耗较少的替代方案,并且不需要任何特殊的php.ini指令

enctype="multipart/form-data"不提供php://input

参考: http://php.net/manual/en/wrappers.php.php

票数 211
EN

Stack Overflow用户

发布于 2013-02-24 02:39:58

input php://

是一个只读流,允许您从请求体读取原始数据。在POST请求的情况下,最好使用php://输入而不是$HTTP_RAW_POST_DATA,因为不依赖于特殊的php.ini指令。此外,对于那些默认情况下不填充$HTTP_RAW_POST_DATA的情况,与激活always_populate_raw_post_data相比,它可能是一种内存密集度较低的替代方案。

来源:http://php.net/manual/en/wrappers.php.php

票数 17
EN

Stack Overflow用户

发布于 2015-10-20 08:53:46

file_get_contents(php://input) -获取原始的POST数据,当您编写API并需要XML/JSON/...时,需要使用它。一些不能被PHP解码成$_POST的输入示例:

通过邮寄JSON字符串发送

代码语言:javascript
复制
<input type="button" value= "click" onclick="fn()">
<script>
 function fn(){


    var js_obj = {plugin: 'jquery-json', version: 2.3};

    var encoded = JSON.stringify( js_obj );

var data= encoded


    $.ajax({
  type: "POST",
  url: '1.php',
  data: data,
  success: function(data){
    console.log(data);
  }

});

    }
</script>

1.php

代码语言:javascript
复制
//print_r($_POST); //empty!!! don't work ... 
var_dump( file_get_contents('php://input'));
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2731297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档