一般读取文件夹内的文件方法都是用递归处理的
方法一:
function getfiles( $path ){ $list = array(); foreach( glob( $path . '/*') as $item ){ if( is_dir( $item ) ){ $list = array_merge( $list , getfiles( $item ) ); } else{ $list[] = $item; } } return $list; }
方法二:
function getfiles2( $path ){ $list = array(); foreach( glob( $path . '/*') as $item ){ if( is_dir( $item ) ){ $list[] = $item; } } return $list; }
方法三:获取所有文件,带时间
function getfilelist( $path ){ clearstatcache(); $list = array(); foreach( glob( $path . '/*') as $item ){ if( is_dir( $item ) ){ $list = array_merge( $list , getfilelist( $item ) ); } else{ $list[$item] = ftime(fileatime($item)); //fileatime 访问时间 fileatime 访问时间 filemtime 修改时间 } } return $list; }
方法四:
function getfilelist2( $path ){ clearstatcache(); $list = array(); foreach( glob( $path . '/*') as $item ){ if( is_dir( $item ) ){ $list = array_merge( $list , getfilelist2( $item ) ); } else{ $list[$item] = ftime(filemtime($item)); //fileatime 访问时间 fileatime 访问时间 filemtime 修改时间 } } return $list; }
方法五:可以列出指定目录下所有的文件(包括子目录下的)
function getfiles($path){ foreach(scandir($path) as $afile) { if($afile=='.'||$afile=='..') continue; if(is_dir($path.'/'.$afile)) { getfiles($path.'/'.$afile); } else { echo $path.'/'.$afile.'<br />'; } } } //简单的demo,列出当前目录下所有的文件 getfiles(__DIR__);
方法六:
/** * 遍历当前文件夹展示所有的文件和目录 */ function dirList($dir_path = '') { if(is_dir($dir_path)) { $dirs = opendir($dir_path); if($dirs) { while(($file = readdir($dirs)) !== false) { if($file !== '.' && $file !== '..') { if(is_dir($file)) { echo $dir_path . '/' . $file . ' '; dirList($dir_path . '/' . $file); } else { echo $dir_path . '/' . $file . ' '; } } } closedir($dirs); } } else { echo '目录不存在!'; } } dirList('/var/www/html/php-demo'); function dir_list($dir) { if(!is_dir($dir)) return false; $dir_list = array(); $opendir = opendir($dir); if($opendir) { while(($file = readdir($opendir)) !== false) { if($file !== '.' && $file !== '..') { $tem = $dir . '/' . $file; if(is_dir($tem)) { $dir_list[$tem . '/'] = $file . '/'; dir_list($tem); } else { $dir_list[] = $file; } } } closedir($opendir); return $dir_list; } } $dir = dir_list('/var/www/html/php-demo'); var_dump($dir);
方法七:
function myscandir($path){ $mydir=dir($path); while($file=$mydir->read()){ $p=$path.'/'.$file; if(($file!=".") AND ($file!="..")){ echo $p.'<br>'; } if((is_dir($p)) AND ($file!=".") AND ($file!="..")){ myscandir($p); } } } myscandir(dirname(dirname(__FILE__)));