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 . '<br />' ;
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<br />' ;
}
}
}
// 對目錄進行自然排序
natcasesort( $aFolders ) ;//對數組自然排序 natcasesort(array)
foreach ( $aFolders as $sFolder )
{
echo $sFolder ;
}
// 對文件進行自然排序
natcasesort( $aFiles ) ; // 自然1-9,a-z排序natcasesort(array);
foreach ( $aFiles as $sFiles )
{
echo $sFiles ;
}
}
/*
調用方法當前有目錄
dirs:1
dirs:www.bKjia.c0m
文件名:1.php
文件名:2.php
*/
listDirFiles();
/*
輸出結果為
dirs:1
dirs:www.bKjia.c0m
文件名: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 的排序方法,短者優先,該函數不區分大小寫。數組的索引與單元值保持關聯