PHP DirectoryIterator在Windows上缺少目录

时间:2016-03-27 17:00:12

标签: php

我正在使用PHP DirectoryIterator创建模块以获取指定路径中的目录列表。有例子:

class GardenUtils
{
    public static function getPath()
    {
        return public_path() . "/images/garden/";
    }

    public static function getAlbumDirectories()
    {
        $directories = [];

        $directoryIterator = new DirectoryIterator(self::getPath());

        foreach ($directoryIterator as $directory) {
            if (!$directory->isDot() && $directory->isDir()) {
                $directories[] = FileUtil::normalizeFileName($directory->getFilename());
            }
        }

        return $directories;
    }
}

我的问题是由于数组中的扫描缺少了一些目录。例如 - 12放在目录中,并落入数组10.如果我删除$directory->isDir()条件,将扫描所有文件。另外,如果我调用$directory->getType(),脚本会因RuntimeException而崩溃。 所有目录都包含俄语字母和变音符号。

正确扫描的名称示例:Аквилегия (Aquilégia)
导致问题的名称示例:Хоста (Hósta) (h5-30)

使用俄语语言环境在Windows 7上使用PHP 5.6.12重现该问题。 Linux系统上的PHP 5.5.25正常工作。

我该如何解决?

0 个答案:

没有答案