示例#1
0
/**
 * 递归读取文件夹的文件列表
 *
 * 读取的目录路径可以是相对路径, 也可以是绝对路径, $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;
}
示例#2
0
 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;
     }
 }