本篇內(nèi)容主要講解“php怎么讀取目錄及子目錄下所有文件名”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“php怎么讀取目錄及子目錄下所有文件名”吧!
一般來說php中讀取目錄下的文件名的方式確實(shí)不少,最簡(jiǎn)單的是scandir,具體代碼如下:
復(fù)制代碼 代碼如下:
$dir="./caxa/";
$file=scandir($dir);
print_r($file);
稍微復(fù)雜點(diǎn)的,來自于php手冊(cè):
復(fù)制代碼 代碼如下:
$dir = "/etc/php5/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
} closedir($dh);
}
}
這些都只能讀取當(dāng)前指定目錄下的文件,對(duì)子目錄中的文件則無法讀取。原來自己寫過一個(gè)循環(huán)刪除所有目錄的一段代碼,需要逐個(gè)子目錄刪除所有文件,包括多層。但是只需要讀出文件名,稍微復(fù)雜點(diǎn),網(wǎng)上找到一個(gè)能用,原始代碼有錯(cuò)誤提示,改了一下引用&$data的地方,如下所示:
復(fù)制代碼 代碼如下:
function searchDir($path,&$data){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!='.'&& $file!='..'){
searchDir($path.'/'.$file,$data);
}
}
$dp->close();
}
if(is_file($path)){
$data[]=$path;
}
}
function getDir($dir){
$data=array();
searchDir($dir,$data);
return $data;
}
print_r(getDir('.'));
到此,相信大家對(duì)“php怎么讀取目錄及子目錄下所有文件名”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!