您好,登錄后才能下訂單哦!
PHP中怎么獲取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”);來獲取原始數據。
事實上,用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']中。
PHP獲取POST數據代碼是什么
1、PHP如何獲取POST過來的XML數據和解析XML數據
比如我們在開發微信企業號時,如何處理用戶回復過來的數據呢?
文檔:http://qydev.weixin.qq.com/wiki/index.phptitle=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A%E6%B6%88%E6%81%AF
首先查閱文檔,可知道:啟用開發模式后,當用戶給應用回復信息時,微信服務端會POST一串XML數據到已驗證的回調URL
假設該URL為http://www.xxx.com
Http請求方式:POST
http://www.xxx.com/msg_signature=ASDFQWEXZCVAQFASDFASDFSS×tamp=13500001234&nonce=123412323
POST的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數據問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。