前言
博客开通也有一段时间了,文章越来越多,各种图片资源也多了,渐渐感觉到博客打开速度有点慢,对于我的服务器来说压力也不小,于是决定开始优化网站,最近注册了七牛云存储空间,速度杠杠的。
但是我需要一个快捷的方法来把博客里原有的资源转移到云空间,于是开始使用WPJam的这个七牛云插件。
然而
这个七牛云插件依赖于WPJam-Basic
这个插件,但是这个插件安装完却出错了!
错误代码类似于这个:
Fatal error: Uncaught Error: Call to undefined function mb_strimwidth()
导致我的所有文章都显示不出来了。
这个就很烦了。
解决
仔细看了一下错误代码,原来是找不到mb_strimwidth
这个函数,为啥会找不到这个呢,看了一下PHP的文档,原来是没有开启mbstring
模块,然而需要重新编译PHP,这就很麻烦了。
于是退而求其次,看了一下这个函数的功能,从字符串中截取指定长度的字符串,这个我们可以自己实现一个。
找到出错的文件,wpjam-functions.php
。
这个文件使用了两个未定义的函数:mb_strwidth
,mb_strimwidth
。
不怕,我自己来定义这两个函数。
function mb_strwidth($str){
return strlen($str);
}
function mb_strimwidth($str ,$start , $width ,$trimmarker ){
$output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);
return $output.$trimmarker;
}
然后保存这个文件,到博客主页刷新一看,嘿嘿,问题解决了。
后记
除了这个问题以外,这个插件做的还是不错的,挺好用的。
配合七牛的CDN加速,现在博客的速度嗖嗖的,贼快!