WordPress前端HTML代码压缩出现Division by zero错误怎么办?

二叶草 2020年2月21日19:20:36问题及解决评论阅读模式

很多 WordPress 站长都喜欢通过插件或纯代码实现站点前端 HTML 代码压缩功能(PS:实现方法详见『纯代码实现 WordPress 前端 html 代码压缩优化教程』),不过昨天有博主反馈说他升级之后登录后台总是出现“PHP Warning: Division by zero in”错误。经过检查发现就是通过纯代码实现站点前端 HTML 代码压缩功能造成的,具体问题代码如下:

  1. $final=strlen($buffer_out);
  2. $savings=($initial-$final)/$initial*100;
  3. $savings=round($savings, 2);
  4. $buffer_out.="n<!--压缩前的大小: $initial bytes; 压缩后的大小: $final bytes; 节约:$savings% -->";

错误发生在上述第 2 行代码中,错误原因就是在运算式子中有可能存在除数为 0 的情况。解决办法有两种,一个就是判断除数是否为 0,另一个就是删除相关代码。

方法一:给$initial 增加判断是否为 0

针对“PHP Warning: Division by zero in”错误的解决办法就是为这个除数$initial 增加一个判断,如果等于 0 就赋值为 1 或其他数值即可。如上述第 2 行代码修改为:

  1. if($initial==0){$initial=1;}
  2. $savings=($initial-$final)/$initial*100;

其中 1 可以改为其他数值,毕竟$initial 是页面压缩前的大小,几乎不可能为 0,所以万一它真的等于 0,那么我们就让它不等于 0 就可以了。

方法二:不显示压缩前后的大小数据

其实我们这个压缩前端 HTML 代码达到目的就行,真没必要显示出来压缩前后的大小数据,那么把这个相关代码删除问题也就自然解决了。具体做法只需要将上述 4 行代码全部删除或者全部注释掉即可。具体如下:

  1. //$final=strlen($buffer_out);
  2. //$savings=($initial-$final)/$initial*100;
  3. //$savings=round($savings, 2);
  4. //$buffer_out.="n<!--压缩前的大小: $initial bytes; 压缩后的大小: $final bytes; 节约:$savings% -->";

总结

以上两种方法都能给解决“PHP Warning: Division by zero in”错误,喜欢显示压缩前后数据的就采用方法一,不喜欢的就采用方法二。boke11 2 联盟认为,功能达到就行,有些信息站长自己了解就可以了,没必要什么都显示出来。

本文来源于:WordPress前端HTML代码压缩出现Division by zero错误怎么办?-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
二叶草
Wpscan使用教程-Wordpress网站渗透 问题及解决

Wpscan使用教程-Wordpress网站渗透

Wpscan是专门检查Wordpress网站漏洞的工具,它可以全面检查wp网站的漏洞,有助于我们增加网站安全防护。但是也有人使用Wpscan渗透别人的网站,最近我客户的网站就被黑了,现在简单把使用wp...

发表评论