水印插件上传时提示 Trying to access array offset on value of type bool 的解决办法
国庆前夕想着测试点功能,在上传js文件的时候,水印插件报错提示:Trying to access array offset on value of type bool,其他插件也类似这个文件,关于水印插件其实还有问题,因为这个插件最初的鸟哥写的,后期因为鸟哥不在zb了,所有我把这个插件从猪那要来了,当时是因为修改一个BUG,修改之后上架了,期间不少人找我,因为在使用的时候无效,无法选择水印模式,这个问题今天也顺便解决了,咳咳,聊正题哈,为什么会提示这个呢?
问题只存在PHP7+版本以上才会有,之前在 PHP 7.3中是正常运行的。由此分析得出,PHP 语言本身对于语法的规范性要求得更为严谨了的。是在php7版本中,7.4 版本的向后不兼容更改,非数组的数组样式访问,现在,尝试将 null,bool,int,float 或 resource 类型的值用作数组 ( 例如 $null[“key”] ) 会产生一个通知。
解决办法就是需要将“$tmp_info[2]”做一个判断,然后执行函数,修改之后的代码为:
PHP
if(isset($tmp_info[2])){ if($tmp_info[2]>1 and $tmp_info[2]<4) { Watermark_Do($tmp,$waterPos,$waterImage,$waterText,$textFont,$textColor,$watertype); }}
修改之前记得备份,修改完成后保存代码,前台上传文章测试一切正常,未再报错,问题已解决但是仅仅针对水印插件,其他代码请自行排查,水印插件的问题已经修复了,如遇到了类似的问题请更新插件,如果是其他程序也提示报错那么请百度吧,我也搞不懂的。毕竟都了解我只是代码的搬运工,不是生产者!!!
相关新闻
Nginx无法加载.woff .eot .svg .ttf等字体文件的解决办法
SVN提交项目时提示 run 'svn cleanup' to remove locks 怎么解决?
网站提示file_get_contents(): SSL: Handshake timed out错误怎么解决
zblogphp显示页面运行信息(耗时、数据插件、内存)的图文教程
PHP使用file_get_contents打开URL获得网页内容及函数超时控制的用法
PHP错误提示open_basedir restriction in effect的解决方案
- 24小时热门
- 精彩新闻