腾讯云服务器优惠活动华纳云香港服务器

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

WordPress主题推荐

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

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

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

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

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

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

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

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

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

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

总结

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

本文地址:https://boke112.com/post/7418.html

赞 (0) 打赏
版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu