php json_decode 返回值爲null

今天工做中碰到一個很詭異的問題。從memcache中取出的json字符串沒法解析。返回值爲null。php

我在作一個遊戲的認證接口,客戶端傳入一串加密過的token,我解密之後去memcache中獲取用戶認證數據。json

這段數據是遊戲服務器端寫入進memcache中的。服務器

我把數據讀出來之後,怎麼都解析不了。可是打印出來沒問題。google

去google了一下,都是說雙引號和單引號的問題。加密

可是我把打印出來的字符串直接放入php文件中是能夠解析的,token

這就排除了雙引號和單引號的問題。接口

接着用var_dump查看字符串,發現字符數目不對。遊戲

反應過了,應該是多了隱藏字符。字符串

接着把字符串的ascll碼打印出來。服務器端

發現多了一個"\0"這個字符。立刻反應過了,服務器端程序是用C寫的,在C中。字符串是已"\0"結尾。

把這個小尾巴也保存進了memecache中了。哈哈。

終於解決了。用str_replace("\0","",$str);替換掉這個小尾巴就行了。

相關文章
相關標籤/搜索