/** * 递归读取文件夹的文件列表 * * 读取的目录路径可以是相对路径, 也可以是绝对路径, $file_type 为指定读取的文件后缀, 不设置则读取文件夹内所有的文件 * * @param string * @param string * @return array */ function fetch_file_lists($dir, $file_type = null) { if ($file_type) { if (substr($file_type, 0, 1) == '.') { $file_type = substr($file_type, 1); } } $base_dir = realpath($dir); $dir_handle = opendir($base_dir); $files_list = array(); while (($file = readdir($dir_handle)) !== false) { if (substr($file, 0, 1) != '.' and !is_dir($base_dir . '/' . $file)) { if ($file_type and H::get_file_ext($file, false) == $file_type or !$file_type) { $files_list[] = $base_dir . '/' . $file; } } else { if (substr($file, 0, 1) != '.' and is_dir($base_dir . '/' . $file)) { if ($sub_dir_lists = fetch_file_lists($base_dir . '/' . $file, $file_type)) { $files_list = array_merge($files_list, $sub_dir_lists); } } } } return $files_list; }
public function get_file_class($file_name) { switch (strtolower(H::get_file_ext($file_name))) { case 'jpg': case 'jpeg': case 'gif': case 'bmp': case 'png': return 'image'; break; case '3ds': return '3ds'; break; case 'ace': case 'zip': case 'rar': case 'gz': case 'tar': case 'cab': case '7z': return 'zip'; break; case 'ai': case 'psd': case 'cdr': return 'gif'; break; default: return 'txt'; break; } }