自从装上那个缩略图插件后,在后台编辑文章时总会出现一个错误提示:
这个错误是ta_exceprt.php中的mb_strlen() 缺少一个参数。由于对php还是不怎么了解,原来mb_strlen()是统计“字”数的,但是由于各种编码的问题,所以要统计正确,就要第二个参数的协助。错误提示也没有说是哪个语句调用它时出的错误。所以我今晚上半夜就研究了一下ta_excerpt.php这个文件。
if ( !function_exists('mb_strlen') ) { function mb_strlen ($text, $encode) { if ($encode=='UTF-8') { return preg_match_all('%(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )%xs',$text,$out); }else{ return strlen($text); } } } |
上面是ta_excerpt.php的一段。如果没有mb_strlen()这个函数,后面就定义一个。参数$encode没有默认值,如果调用这个函数的时候没有加这个参数,就会出现上面的错误提示。但是为什么别人的不加就可以呢?或许与php有关。
刚才网上查了一下,在linux下,如果要php支持mb_strlen()这个函数,还要用到php-mbstring这个包。我装上这个包后,然后重启apache后,错误消失了。
为了找出这个错误的原因,我把这个插件都给完全删除了。
日哦
12点还在忙这个 精力真充沛啊
晚上一般都是11点以后睡觉,早上8点半左右。睡眠时间是足够了。遇到一些电脑问题时,我一般都是废寝,而且解决后特别兴奋。
另:你留言是的网址拼错了啊,看来是在你的电脑上有缓存导致的。