新蒲京200.c软件下载-app官网网址 > 新蒲京200.c软件下载 >

希望得以补助到你

PHP如何赢得表单的POST数据吧?本文介绍3种得到POST数据的艺术,并将代码附上,希望得以帮助到你。

一、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”State of Qatar;来博取原始数据。
实际,用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']中

二、演示

1、PHP 怎么样得到POST过来的XML数据和分析XML数据

比方大家在开拓Wechat公司号时,如哪个地方理客户回复过来的数据吧?
文档:
率先查看文书档案,可驾驭:启用开垦格局后,当客户给使用回复消息时,Wechat服务端会POST一串XML数据到已表达的回调URL

假设该URL为 http://www.xxx.com
Http须求方式: POST
http://www.xxx.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS×tamp=13500001234&nonce=123412323

POST的XML内容为:

<xml>
   <ToUserName><![CDATA[toUser]]></ToUserName>
   <FromUserName><![CDATA[fromUser]]></FromUserName> 
   <CreateTime>1348831860</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[this is a test]]></Content>
   <MsgId>1234567890123456</MsgId>
   <AgentID>1</AgentID>
</xml>

那么怎么采用这段内容呃?
此刻就足以用到:方法2(file_get_contents(“php://input”))、方法3($GLOBALS['HTTP_RAW_POST_DATA'])

方法2(file_get_contents(“php://input”)):

$input = file_get_contents("php://input"); //接收POST数据
$xml = simplexml_load_string($input); //提取POST数据为simplexml对象
var_dump($xml);

方法3($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);

PHP获取POST数据的3种办法及其代码解析,希望得以帮到你。

上一篇:付费投稿布置
下一篇:没有了