`

$HTTP_RAW_POST_DATA

    博客分类:
  • php
 
阅读更多

转自:http://www.cnblogs.com/xwblog/archive/2011/12/23/2299672.html

这是手册里写的

总是产生变量包含有原始的 POST 数据。否则,此变量仅在碰到未识别 MIME 类型的数据时产生。不过,访问原始 POST 数据的更好方法是 php://input。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。

问题:$HTTP_RAW_POST_DATA== $_POST吗?

照手册所写 ,答案应该就为否。
假如不一样的话,他们的区别是什么呢?


我知道答案了,如下:

The RAW / uninterpreted HTTP POst information can be accessed with:
$GLOBALS['HTTP_RAW_POST_DATA']
This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).

也就是说,基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。

PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型

用Content-Type=text/xml 类型,提交一个xml文档内容给了php server,要怎么获得这个POST数据。

The RAW / uninterpreted HTTP POST information can be accessed with: $GLOBALS['HTTP_RAW_POST_DATA'] This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).

由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml的内容无法解析为$_POST数组,故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收。

另外还有一项 php://input 也可以实现此这个功能

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


应用


a.htm
------------------
<form action="post.php" method="post">
<input type="text" name="user">
<input type="password" name="password">
<input type="submit">
</form>

post.php
----------------------------
<? echo file_get_contents("php://input"); ?>

转载保留链接

分享到:
评论

相关推荐

    PHP中$GLOBALS[HTTP_RAW_POST_DATA]和$_POST的区别分析

    在PHP编程中,HTTP请求方式主要有GET和POST,而在处理POST数据时,开发者可能会遇到两种全局变量:`$_POST`和`$GLOBALS['HTTP_RAW_POST_DATA']`。这两个变量都与HTTP POST请求中的数据有关,但它们在使用场景和功能...

    PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析

    主要介绍了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别,结合具体实例形式分析了$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的功能与使用过程中的区别,需要的朋友可以参考下

    nusoap参考手册,API

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); ``` 这段代码定义了一个名为`hello`的服务,接收一个参数`name`并返回问候语。 ### 3. ...

    php webservice类nusoap

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); // 创建SOAP客户端 $client = new nusoap_client('http://localhost/MyService?wsdl'); $...

    Java调用php的webservice

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); ``` 通过`$HTTP_RAW_POST_DATA`获取到请求的数据,并通过`$server-&gt;service()`方法处理...

    php nusoap

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); ``` 客户端示例: ```php require_once 'nusoap.php'; $client = new nusoap_client('...

    智能生活C-SDK应用living_platform_rawdata说明1

    - `user_post_raw_data`:向云端发送二进制数据,需要借助协议转换脚本。 此外,当使用品类配网时,可能需要依赖一个用于路由器密码解密的库文件,其在`example/iot.mk`中被链接,并在lib目录下找到相应的库文件...

    PHP中使用XML-RPC构造Web-Service简单入门.doc

    $request = $HTTP_RAW_POST_DATA; $xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request, null); header("Content-Type: text/xml"); echo $xmlrpc_response; ``` 服务器端创建了一个XML-RPC...

    浅谈PHP接收POST数据方式

    然后,通过print_r函数输出通过$_POST数组、$HTTP_RAW_POST_DATA和php://input接收到的数据。值得注意的是,我们用urldecode函数对从php://input获取的数据进行了URL解码,确保数据显示正确。 总结来说,PHP提供了...

    NUSOAP参考文档 PHP

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); ``` 客户端示例: ```php require_once 'nusoap.php'; $client = new nusoap_client('...

    PHP nusoap.php

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); ``` 2. **SOAP 客户端调用**: 使用 `nusoap_client` 类,你可以轻松地调用远程 SOAP...

    nusoap构建webservice (php)

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server-&gt;service($HTTP_RAW_POST_DATA); ``` 这段代码定义了一个名为`myFunction`的函数,并注册到SOAP服务器上,接收两个字符...

    PHP中XML-RPC构造WebService.pdf

    $request = $HTTP_RAW_POST_DATA; $xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request, null); header("Content-Type: text/xml"); echo $xmlrpc_response; xmlrpc_server_destroy($...

    解决Vue axios post请求,后台获取不到数据的问题方法

    在PHP中,通常使用`$_POST`来接收POST数据,但这可能不适用于某些复杂的结构。一种替代方案是使用`file_get_contents('php://input')`,它能直接读取原始的HTTP请求主体,这样你可以在后台自行解析JSON或其他格式的...

    php获取POST数据的三种方法实例详解

    $HTTP_RAW_POST_DATA变量一般不推荐使用,因为$_POST数组已经足够用来处理大多数表单数据。 在处理POST数据时,开发者还应当注意安全问题,比如防止SQL注入和跨站脚本攻击(XSS)。正确地使用预处理语句和适当的...

    php获取post中的json数据的实现方法

    总之,当你需要在PHP中处理JSON格式的POST数据时,不要依赖`$_POST`,而是应该使用`$GLOBALS['HTTP_RAW_POST_DATA']`或`php://input`来获取原始数据,然后使用`json_decode()`进行解析。同时,确保客户端正确设置了`...

    PHP中使用XML-RPC构造Web_Service简单入门.doc

    $request = $HTTP_RAW_POST_DATA; // 执行调用客户端的XML请求后获取执行结果 $xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request); echo $xmlrpc_response; ?&gt; ``` 此段代码实现了创建一个...

Global site tag (gtag.js) - Google Analytics