微信公衆號開發--$GLOBALS["HTTP_RAW_POST_DATA"]不能使用

今天開發的時候遇到這個問題,我的環境是php7.3的,在$GLOBALS["HTTP_RAW_POST_DATA"]這個代碼前面打印沒有問題,在其後面打印日誌發現沒有打印成功,想到可能是這個問題,從網上搜了一下,發現是由於php版本的原因,php5.6以上廢了這個函數,如果要使用,直接使用file_get_contents('php://input')就可以了,

一個完整的方法代碼如下

public function responseMsg()
    {
        $postStr = file_get_contents('php://input'); //此處將之前的$GLOBALS["HTTP_RAW_POST_DATA"]改過來的
        if (!empty($postStr)){
            libxml_disable_entity_loader(true);
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $RX_TYPE = trim($postObj->MsgType);

            switch ($RX_TYPE)
            {
                case "text":
                    $resultStr = $this->receiveText($postObj);
                    unset($postStr,$postObj,$RX_TYPE);
                    break;
                case "event":
                    $resultStr = $this->receiveEvent($postObj);
                    unset($postStr,$postObj,$RX_TYPE);
                    break;
                default:
                    $resultStr = "";
                    unset($postStr,$postObj,$RX_TYPE);
                    break;
            }
            echo $resultStr;
        }else {
            echo "";
            exit;
        }
    }

這樣就完美解決了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章