vB·流水账

生命在于折腾。

Piwik切换到中文后一些挂件无法正常显示的解决方案

2016-12-9 vibbow

由于Piwik代码的缺陷,导致Piwik在切换到中文语言后,一部分挂件(比如说访客地图)无法正常显示。

问题原因:
Piwik的语言模块有一个功能:把单词的首字母自动大写。但是这个功能(使用的ucfirst函数)并没有考虑到多字节字符的存在,导致对中文字符使用ucfirst后产生了非法字符。

解决方案:
修改 plugins/API/ProcessedReport.php 文件
找到
$name = ucfirst($name);
把他用以下 if 语句包围起来
if (substr($name, 0, 1) === mb_substr($name, 0, 1)


#使用此修正方法需要服务器启用了mbstring系列函数
#同时不能启用mbstring重载功能 http://php.net/manual/de/mbstring.overload.php

评论(0) 浏览(380)