栏目列表

$HTTP_RAW_POST_DATA和$_POST的相关知识

更新时间:2016-11-09 13:55来源:未知 作者:admin 点击:
$HTTP_RAW_POST_DATA在php.ini的 always_populate_raw_post_data选项设置为true时一直可以接收所有类型post数据,但设置为false时只有mime类型不为application/x-www-form-urlencoded时有值,但mime为multipart/form-da
$HTTP_RAW_POST_DATA在php.ini的always_populate_raw_post_data选项设置为true时一直可以接收所有类型post数据,但设置为false时只有mime类型不为application/x-www-form-urlencoded时有值,但mime为multipart/form-data时无效。但是php://input是可以正常使用的,举例如下:

form.php

<?php
$url = "http://localhost/do_form.php";
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/xml'));//如果注释掉这一行,mime默认就是application/x-www-form-urlencoded
curl_setopt($ch, CURLOPT_POSTFIELDS, 'a=b&c=d');

curl_exec($ch);

curl_close($ch);

?>

do_form.php

<?php
echo file_get_contents('php://input');//这个一直有效,输出a=b&c=d
echo $HTTP_RAW_POST_DATA;//这个在注释掉CURLOPT_HTTPHEADE那一行之后会不输出任何值,保留那个header将会输出a=b&c=d
echo $_POST['a'];//在注释掉那个header或改成array('Content-Type:application/x-www-form-urlencoded')以后输出b,打开注释将无输出

?>
(责任编辑:admin)
热点内容
推荐内容