出错缘由:移过来更名字的时候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); }