当前位置: 首页 > article >正文

Z-BlogPHP显示错误Undefined array key 0 (set_error_handler)的解决办法

今天打开博客的时候,意外发现页面,打开均显示错误:Undefined array key 0 (set_error_handler)。

博客程序采用的是Z-BlogPHP。百度了一圈没有找到解决办法,在官方论坛里也没找到解决办法。

于是开始自己排查原因。我服务器采用的PHP8.0,主题:CMS文章模板(作者: 老白)。

排查步骤一:通过观察发现,某些不含有二级分类的分类页面,以及发布到这些分类的文章,打开均含有这个错误,而那些有二级分类的,打开就不显示这个错误,初步判断应该是模板语法写得不规范导致不兼容PHP8的问题。

于是,自己手工在这些错误的文章所在的分类下添加了下级分类,此时错误消失。

但没多久,即使有下级分类,错误又再一次重现,说明不是缺乏二级分类这个原因。

排查步骤二:在后台切换为官方默认模板,发现没有任何错误,说明了错误确实出现在这个模板上面。

于是在后台设置调试模式,发现错误描述为:

文件位置:zb_users/theme/yd0825/functions/Common.php 出错在第16行。

13    if (isset($related->Metas->pic)) {

14     $thumb = $related->Metas->pic;

15     } elseif ( isset($matchContent[1][0]) || $related->ImageCount >= '1' ) {

16    $thumb = $matchContent[1][0];

17    } else {

18    if ($zbp->Config('yd0825')->noimgstyle == '1') {

19    $thumb = $zbp->Config('yd0825')->noimg;

20    }elseif($zbp->Config('yd0825')->noimgstyle == '2'){

21    $thumb=$zbp->host . "zb_users/theme/" .$zbp->theme. "/include/random/" .$temp. ".jpg";

好家伙,原来是获取文章缩略图时出错了。我想不明白的是,第15行,既然“isset($matchContent[1][0])”这个条件都不能满足的话,直接使用“$matchContent[1][0]”又怎么可能获取到值啊!啥逻辑啊?于是,打开这个Common.php源文件,直接将15行代码修改为:

} elseif ( isset($matchContent[1][0]) ) {

刷新页面,错误消失,至此问题解决了。

想用这个模板的朋友不妨试试。如果要官方的解决方法,只能等模板作者来修复这个BUG了。

修改后的代码为:

image.png

题外话:随便看了源码发现还有一个明显的BUG。

        在zb_users/theme/yd0825/functions/Common.php 文件的第9行也存在明显的BUG:

$pattern = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";

      看到没?这个正则写得也有问题,难道图片URL的格式就.gif、.jpg和.png这三种?事实上你转载别的网站的文章,图片格式远远多于这三种,而且还有很多链接的图片URL是没有后缀的。

       我的博客之所以出现错误,问题的原因就是刚好那个分类下有2篇文章的图片是外链且没有图片后缀的。

       至此,出现问题的BUG真相大白了。

原文链接(转载需注明来源):Z-BlogPHP显示错误Undefined array key 0 (set_error_handler)的解决办法 - 其他 - 5300.CN今天打开博客的时候,意外发现页面,打开均显示错误:Undefined array key 0 (set_error_handler)。博客程序采用的是Z-BlogPHP。百度了一圈没有找到解决办法,在官方论坛里也没找到解决办法。于是开始自己排查原因。我服务器采用的PHP...icon-default.png?t=O83Ahttps://5300.cn/blog/21


http://www.kler.cn/news/367754.html

相关文章:

  • JavaEE初阶---文件IO总结
  • 【计算机操作系统】课程 作业二 进程与线程 408考研
  • IO流详解_CoderLix
  • 医院信息化与智能化系统(9)
  • k8s可以部署私有云吗?私有云部署全攻略
  • 【JavaSE】认识String类,了解,进阶到熟练掌握
  • 【Chapter 2】因果推断中的随机实验与统计学复习
  • 基于flask+vue框架的的法律咨询信息系统的设计与实现5m1le(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 隨筆 Kafka 拦截器概述
  • 如何选择适合的有序集合数据结构?
  • 瑞吉外卖之com.fasterxml.jackson.dataformat.cbor.CBORFactor相关报错
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-21
  • 基于Kratos+ent+postgreSQL构建简单的CRUDapi
  • 嵌入式软开项目——电子手环开发——学习引导和资料网址
  • 基于R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析
  • linux运维100讲练习:第7集
  • 【~/.bashrc】linux系统添加环境变量
  • Linux练习_2账户管理
  • IPV6扩展头部
  • Verilog:参数(parameter)的使用
  • 嵌入式——STM32外设应用
  • 抖音列表页采集-爬虫部分(2)
  • B/S架构的诊所药店云his管理系统源码,云门诊管理系统,自主知识产权,支持二次开发
  • iOS Swift逆向——deMangle过程中的偏移计算
  • 算法|牛客网华为机试10-20C++
  • 学点高数-数学上的集合①-集合的基本概念