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

雪飘落在对面的屋顶上,屋顶像蒙了一条闪着银光的纱巾,美丽极了。雪飘落在树上,树上像缀满了银色的小花。雪飘落在操场上,操场变得像铺满棉花一样白茫茫的一片。

很多 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 联盟认为,功能达到就行,有些信息站长自己了解就可以了,没必要什么都显示出来。

以上就是WordPress前端HTML代码压缩出现Division by zero错误怎么办?。所谓的放下,就是去除你的分别心、是非心、得失心、执着心。更多关于WordPress前端HTML代码压缩出现Division by zero错误怎么办?请关注haodaima.com其它相关文章!

标签: WordPress HTML