全国服务热线:4008-888-888

公司新闻

PHP获得POST的几类方式

点一下率:1100 公布人:管理方法员  公布时间:2018/2/25  【去百度搜索看一下】


一、PHP获得POST数据信息的几类方式

方式1、最经常见的方式是:$_POST[ fieldname
表明:只有接受Content-Type: application/x-www-form-urlencoded递交的数据信息
表述:也便是表格POST回来的数据信息

方式2、file_get_contents( php://input
表明:
容许载入 POST 的初始数据信息。
和 $HTTP_RAW_POST_DATA 相比来,它给运行内存产生的工作压力较小,而且不用一切独特的 php.ini 设定。
php://input 不可以用以 enctype= multipart/form-data 。
表述:
针对未特定 Content-Type 的POST数据信息,则可使用file_get_contents(“php://input”);来获得初始数据信息。
客观事实上,用PHP接受POST的一切数据信息都可以令其用本方式。而无需考虑到Content-Type,包含二进制文档流还可以。
因此用方式二是最商业保险的方式

方式3、$GLOBALS[ HTTP_RAW_POST_DATA
表明:
一直造成 $HTTP_RAW_POST_DATA  自变量包括有初始的 POST 数据信息。
此自变量仅在遇到未鉴别 MIME 种类的数据信息时造成。
$HTTP_RAW_POST_DATA  针对 enctype= multipart/form-data   表格数据信息不能用
假如post回来的数据信息并不是PHP可以鉴别的,能够用 $GLOBALS[ HTTP_RAW_POST_DATA ]来接受,
例如 text/xml 或是 soap 这些
表述:
$GLOBALS[ HTTP_RAW_POST_DATA ]储放的是POST回来的初始数据信息。
$_POST或$_REQUEST储放的是 PHP以key= value的方式文件格式化之后的数据信息。 
但$GLOBALS[ HTTP_RAW_POST_DATA ]中是不是储存POST回来的数据信息在于centent-Type的设定,即POST数据信息时 务必显式示指出Content-Type: application/x-www-form-urlencoded,POST的数据信息才会储放到 $GLOBALS[ HTTP_RAW_POST_DATA ]中

节选自:u/205403/blog/325595

已推送XML为例子:

方式1:(file_get_contents( php://input ))

$input = file_get_contents( php://input  //接受POST数据信息$xml = simplexml_load_string($input); //获取POST数据信息为simplexml目标var_dump($xml);

方式2:($GLOBALS[ HTTP_RAW_POST_DATA ])

$input = $GLOBALS[ HTTP_RAW_POST_DATA 
libxml_disable_entity_loader(true);$xml = simplexml_load_string($input,  SimpleXMLElement , LIBXML_NOCDATA);var_dump($xml);

 




在线客服

关闭

客户服务热线
4008-888-888


点击这里给我发消息 在线客服

点击这里给我发消息 在线客服