1. 程式人生 > >php遍歷目錄的四種方法

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;

}

}

}

}