public static function scan($dir) { $subdirs = array(); $mp4s = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { if (is_dir($dir . "/" . $entry)) { $subdirs[] = "/" . $entry; } elseif (in_array(pathinfo($entry, PATHINFO_EXTENSION), array("mp4", "ffconcat"))) { $mp4s[] = $entry; } } } closedir($handle); } usort($subdirs, 'self::mb_strnatcasecmp'); usort($mp4s, 'self::mb_strnatcasecmp'); self::$files = array_merge((array) "/..", $subdirs, $mp4s); return json_encode(self::$files, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); }