問題
????php中使用json_decode時,發(fā)現decode出來的結果是NULL??慈罩?,傳入的參數的確是一個合法的json字符串,但decode之后卻是為空,實在是讓人抓不住頭腦。
調試
????想到php里面有個 json_last_error 的方法,根據官方說法,會返回 JSON 編碼解碼時最后發(fā)生的錯誤。加上后一看,果然,decode出問題了。返回的錯誤是 JSON_ERROR_CTRL_CHAR,表示控制字符錯誤,可能是編碼不對。
????這難道是字符串里面混入了控制字符?不多想,遂上網查了下解決方法。
解決
????解決方法其實很簡單,就是執(zhí)行一個正則表達式搜索和替換控制字符
preg_replace( '/[\x00-\x1F]/','',$str);