php遍歷目錄的四種方法
一、利用scandir函式來遍歷目錄
scandir():掃描目錄,顯示資料夾內所有內容,返回陣列,包括 . 與 ..
function bl_scandir($dirname){
$dirArr = scandir($dirname);
foreach($dirArr as $v){
//組合檔案或資料夾的路徑
$filename = $dirname.'\\'.$v;
if ($v != '.' && $v != '..'){
if (is_dir($v)){
bl_scandir($v)
} else {
echo $v;
}
}
}
}
二、利用glob()函式遍歷目錄
glob():掃描目錄,以陣列形式返回資料夾中的內容,返回的內容中已經包含了路徑。引數1:要遍歷的目錄,可以指定返回的檔案型別
//返回當前目錄下的所有檔案
eg:$dirarr = glob('./*');
//返回當前目錄下的所有PHP檔案
$dirarr = glob('./*.php');
function globDir($dirname,$type=''){
if ($type==''){
//返回所有型別的檔案
$dirInfo = glob($dirname.'/*');
} else {
//返回$type型別的檔案
$dirInfo = glob($dirname.'/*.'.$type);
}
foreach($dirInfo as $v){
因為返回的陣列元素中已經包括了檔案路徑,所以不需要組合檔案路徑
if (is_dir($v)) {
globDir($v);
} else {
echo $v."<br/>";
}
}
}
三、以物件方式遍歷目錄
建立template目錄的物件
$dir = dir('template');
while(($file = $dir->read()) !== false){
echo $file."<br/>";
}
四、同過opendir()、readdir()函式遍歷目錄
function bldir($dirname){
$dir = opendir($dirname);
while(($file = $readdir($dir)) !== false){
//組裝資料夾和檔案的路徑
$filename = $dirname.'\\'.$file;
if ($file != '.' && $file !== '..') {
if (is_dir($filename)) {
bldir($filename);
} else {
echo $filename;
}
}
}
}