转自: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编程中,HTTP请求方式主要有GET和POST,而在处理POST数据时,开发者可能会遇到两种全局变量:`$_POST`和`$GLOBALS['HTTP_RAW_POST_DATA']`。这两个变量都与HTTP POST请求中的数据有关,但它们在使用场景和功能...
主要介绍了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别,结合具体实例形式分析了$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的功能与使用过程中的区别,需要的朋友可以参考下
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ``` 这段代码定义了一个名为`hello`的服务,接收一个参数`name`并返回问候语。 ### 3. ...
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); // 创建SOAP客户端 $client = new nusoap_client('http://localhost/MyService?wsdl'); $...
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ``` 通过`$HTTP_RAW_POST_DATA`获取到请求的数据,并通过`$server->service()`方法处理...
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ``` 客户端示例: ```php require_once 'nusoap.php'; $client = new nusoap_client('...
- `user_post_raw_data`:向云端发送二进制数据,需要借助协议转换脚本。 此外,当使用品类配网时,可能需要依赖一个用于路由器密码解密的库文件,其在`example/iot.mk`中被链接,并在lib目录下找到相应的库文件...
$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...
然后,通过print_r函数输出通过$_POST数组、$HTTP_RAW_POST_DATA和php://input接收到的数据。值得注意的是,我们用urldecode函数对从php://input获取的数据进行了URL解码,确保数据显示正确。 总结来说,PHP提供了...
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ``` 客户端示例: ```php require_once 'nusoap.php'; $client = new nusoap_client('...
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ``` 2. **SOAP 客户端调用**: 使用 `nusoap_client` 类,你可以轻松地调用远程 SOAP...
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ``` 这段代码定义了一个名为`myFunction`的函数,并注册到SOAP服务器上,接收两个字符...
$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($...
在PHP中,通常使用`$_POST`来接收POST数据,但这可能不适用于某些复杂的结构。一种替代方案是使用`file_get_contents('php://input')`,它能直接读取原始的HTTP请求主体,这样你可以在后台自行解析JSON或其他格式的...
$HTTP_RAW_POST_DATA变量一般不推荐使用,因为$_POST数组已经足够用来处理大多数表单数据。 在处理POST数据时,开发者还应当注意安全问题,比如防止SQL注入和跨站脚本攻击(XSS)。正确地使用预处理语句和适当的...
总之,当你需要在PHP中处理JSON格式的POST数据时,不要依赖`$_POST`,而是应该使用`$GLOBALS['HTTP_RAW_POST_DATA']`或`php://input`来获取原始数据,然后使用`json_decode()`进行解析。同时,确保客户端正确设置了`...
$request = $HTTP_RAW_POST_DATA; // 执行调用客户端的XML请求后获取执行结果 $xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request); echo $xmlrpc_response; ?> ``` 此段代码实现了创建一个...