天天看點

php列出檔案夾中的檔案夾,php列出指定目錄所有子檔案夾與檔案執行個體

function listDirFiles()

{

// 設定目錄

$dirs = './';

// 申明檔案夾數組與檔案數組

$aFolders = array() ;

$aFiles  = array() ;

$ocfolder = opendir( $dirs ) ;//則該函數傳回一個目錄流,否則傳回 false 以及一個 error。可以通過在函數名前加上 "@" 來隐藏 error 的輸出。用法opendir(path,context)

while ( $sFile = readdir( $ocfolder ) ) // readdir() 函數傳回由 opendir() 打開的目錄句柄中的條目 文法:readdir(dir_stream)

{

if ( $sFile != '.' && $sFile != '..' )

{

if ( is_dir( $dirs . $sFile ) ) // 判斷是否為目錄,是傳回ture否就傳回false;

$aFolders[] = 'dirs:' . $sFile . '

' ;

else

{

$fsize = @filesize( $dirs . $sFile ) ; //filesize() 函數傳回指定檔案的大小。 文法:filesize(filename)

if ( !$fsize ) {

$fsize = 0 ;

}

if ( $fsize > 0 )

{

$fsize = round( $fsize / 1024 ) ;//round() 函數對浮點數進行四舍五入。 round(x,prec)

if ( $fsize < 1 ) $fsize = 1 ;

}

$aFiles[] = '檔案名:' .$sFile . '檔案大小=' . $fsize . 'KB

' ;

}

}

}

// 對目錄進行自然排序

natcasesort( $aFolders ) ;//對數組自然排序 natcasesort(array)

foreach ( $aFolders as $sFolder )

{

echo $sFolder ;

}

// 對檔案進行自然排序

natcasesort( $aFiles ) ; // 自然1-9,a-z排序natcasesort(array);

foreach ( $aFiles as $sFiles )

{

echo $sFiles ;

}

}

listDirFiles();

/*

輸出結果為

dirs:1

dirs:www.jquerycn.cn

檔案名:1.php檔案大小=1KB

檔案名:2.php檔案大小=2KB

用到函數解析

opendir

則該函數傳回一個目錄流,否則傳回 false 以及一個 error。可以通過在函數名前加上 "@" 來隐藏 error 的輸出。用法opendir(path,context)

is_dir

判斷是否為目錄,是傳回ture否就傳回false;

readdir

readdir() 函數傳回由 opendir() 打開的目錄句柄中的條目 文法:readdir(dir_stream)

filesize()

函數傳回指定檔案的大小。 文法:filesize(filename)

natcasesort(array)

natcasesort() 函數實作了“自然排序”,即數字從 1 到 9 的排序方法,字母從 a 到 z 的排序方法,短者優先,該函數不區分大小寫。數組的索引與單元值保持關聯