0

我遇到了 elFinder 的问题。当服务器上有一个文件或文件夹包含其中一个字母 öäü 时,目录(文件)不会显示在 el finder 中,我在

lFinderConnector.class.php json_encode():参数中的 UTF-8 序列无效

但是,如果我使用 elFinder 本身上传一个文件,例如:测试 ö.png 其显示正确,并且在服务器上它看起来像这样:测试 ö.png。目录也是如此。

我的问题是我有数以百万计的文件可能会计算变音符号(ö,ü,ä),而 elFinder 无法显示它们。

有没有其他人遇到过这样的问题或有任何想法或提示如何解决它?

4

2 回答 2

0

您的解决方案用 ASCII 字符替换变音符号,对我来说,它通过utf8_encode()$data数组项之前使用json_encode()并输出它来工作(它保留变音符号)。
我拿了你的片段,修改它并将它添加到 elFinderConnector 类。

protected function array_walk_deep(&$items){
foreach ($items as &$item) {
    if(is_array($item)) {
        $this->array_walk_deep($item);
    } else {            
        $item = utf8_encode($item);
    }
}

$data然后在方法中的数组上调用它output()

$this->array_walk_deep($data);
exit(json_encode($data));
于 2014-09-23T10:08:32.237 回答
0
setlocale(LC_ALL, 'de_DE');
function array_walk_deep(&$items){
    foreach ($items as &$item) {
        if(is_array($item)) {
          array_walk_deep($item);
         } else {
            if (!strpos($item ,'ö')) {
                $item = iconv('UTF-8', 'ASCII//TRANSLIT', utf8_encode($item)) ;
            }

        }
    }
}

array_walk_deep($data);

所以我只是对此做了一个解决方法。在 elFinderConnector 中,我只是在将数组返回到 javascript 之前使用这段代码,这将更改 ö->oe ä->ae 和 ü->ue 将不再导致任何问题,并且将显示目录。用户之后可以重命名目录和文件。希望有人会发现这很有用。

毕业生

于 2013-09-16T11:03:42.063 回答