Heim  >  Artikel  >  php教程  >  php列出指定目录所有子文件夹与文件实例

php列出指定目录所有子文件夹与文件实例

WBOY
WBOYOriginal
2016-06-13 09:58:161224Durchsuche

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     }

    $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 ;
 }


}

/*
调用方法当前有目录
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 的排序方法,短者优先,该函数不区分大小写。数组的索引与单元值保持关联

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn