出錯緣由:移過來更名字的時候phpStorm的自動更新引用更新了緩存(我看的清清楚楚,沒截到圖),因此致使了錯誤php
按着框架運行流程,打印中間變量,確定能夠學好框架,畢竟排系統錯誤的時候就是這麼排的html
出現的緣由應該是改變了文件名,可是緩存自動更新(我用的phpstorm自動更新相關文件)的不對,因此致使錯誤,因此清理一下緩存就行了正則表達式
出錯緣由:移過來更名字的時候phpStorm的自動更新引用更新了緩存(我看的清清楚楚),因此致使了錯誤thinkphp
報錯示意圖數據庫
而且,dump一下出錯的位置的變量,也能夠發現是緩存出了問題,改了名字的文件的路徑對不上數組
參考:unserialize(): Error at offset 0 of 96 bytes出現的緣由分析以及解決方法
https://blog.csdn.net/glx490676405/article/details/79041405緩存
出現問題: 從數據庫中取出數據後進行反序列化後,php報錯 unserialize(): Error at offset 0 of 96 bytes;php框架
分析緣由:英文數據中含有中文字符串,因此咱們就能夠想到編碼的問題,serialize()函數對在不一樣編碼下對中文的處理結果是不同的。框架
再講gbk轉換成utf8的格式後,每一箇中文的編碼數從2個會增長到3個,因此會致使反序列化的時候判斷字符長度出現問題。phpstorm
解決方法 : 使用正則表達式將序列化的數組中的表示字符長度的值從新計算一遍
具體代碼:php5.5如下 :
function mb_unserialize($str) { $out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $str ); return unserialize($out); }
PHP 5.5+
function mb_unserialize($str) { return preg_replace_callback('#s:(\d+):"(.*?)";#s',function($match){return 's:'.strlen($match[2]).':"'.$match[2].'";';},$str); }