php 獲取目錄內的全部文件

利用opendir readdir 及遞歸的方法 獲取目錄下的全部文件內容
function fileList($dir, $level = 0) {
    $fpdir = opendir($dir);
    while($line = readdir($fpdir)) {
        if(strcmp($line, '.') == 0 || strcmp($line, '..') == 0 ) {continue;}
        $encode = mb_detect_encoding($line);
        echo str_pad('', $level*4, '-', STR_PAD_LEFT) . iconv($encode, "utf-8", $line),"<br />";
        echo "\n";
        if(substr($dir, -1) != '/') {
            $newDir = $dir . '/' . $line;                
        } else {
            $newDir = $dir . $line;
        }
        
        if(is_dir($newDir)){            
            fileList($newDir, $level+1);
        }
    }
    
    
    closedir($fpdir);
    
}

二、利用函數 glob  和遞歸的方法 獲取php

function fileList($dir) {
    $dir = str_replace('\\', '/', $dir);  //替換windows的默認斜線
    if(substr($dir, -1) != '/') {         //對路徑進行補全
        $dir .= '/*';
    } else {
        $dir .= '*';        
    }
    $list = glob($dir . '*');            //獲取目錄下的全部文件
    $len = count($list);
    for($i=0; $i<$len; $i++) {
        $encode = mb_detect_encoding($list[$i]);   //獲取當前子字符串的編碼
        
        echo iconv($encode, 'utf-8', $list[$i]),'<br>';  //將字符串的編碼轉化爲 utf-8
        if(is_dir($list[$i])) {
            fileList($list[$i]);
        }
    }    
    
}


這兩種方法種都用到了函數  mb_dectect_encoding()  函數,這個是php的擴展mb_string,因此這個擴展必定要開啓。windows

相關文章
相關標籤/搜索