自己用微信公眾號(hào)搭建了一個(gè)查單詞的消息響應(yīng)接口孝宗,升級(jí)php7之后發(fā)現(xiàn)用不了了穷躁,發(fā)送過(guò)去沒(méi)有任何回應(yīng)。
用微信自帶的調(diào)試工具試了試碳褒,提示
$postStr?=?$GLOBALS["HTTP_RAW_POST_DATA"];
語(yǔ)句中的HTTP_RAW_POST_DATA鍵不存在折砸。改為
$postStr = $_POST;
發(fā)現(xiàn)根本沒(méi)有獲取到post數(shù)據(jù)看疗,搜了半天發(fā)現(xiàn)一篇文章中提示要改為:
$postStr = file_get_contents("php://input");
修改后,一切恢復(fù)正常
引用:
//傳統(tǒng)獲取方式
$postStr = $GLOBALES['HTTP_RAW_POST_DATA'];
//php7之后取消了HTTP_RAW_POST_DATA方式獲取 應(yīng)改為
$postStr = file_get_contents("php://input");
//擴(kuò)展一下
/**
$_POST: 常用于application/x-www.form-urlencoded方式的數(shù)據(jù)提交 如 表單提交 文件上傳
file_get_contents("php://input"): 常用于非enctype="multipart/form-data"的數(shù)據(jù)提交
HTTP_RAW_POST_DATA: 常用于無(wú)法識(shí)別的數(shù)據(jù)格式睦授,如能被$_POST識(shí)別 這這里取不到值两芳。
設(shè)置 php.ini 中的 always_populate_raw_post_data 值為 On 才會(huì)生效
php7之后不支持。
終上: 關(guān)聯(lián)數(shù)組鍵值對(duì)方式提交的數(shù)據(jù) 使用$_POST $_POST無(wú)法獲取時(shí)去枷,
使用php://input
**/