很多 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其它相关文章!