php实现遍历当前文件夹以及其下所有文件与文件夹的代码,主要是用到了递归,有需要的朋友,可以参考学习下。
代码如下: <?php /** * 遍历文件夹下所有文件 * site bbs.it-home.org */ $path = './filepath'; function getfiles($path) { if(!is_dir($path)) return; $handle = opendir($path); while( false !== ($file = readdir($handle))) { if($file != '.' && $file!='..') { $path2= $path.'/'.$file; if(is_dir($path2)) { echo ' '; echo $file; getfiles($path2); }else { echo ' '; echo $file; } } } } print_r( getfiles($path)); echo ' <HR>'; function getdir($path) { if(!is_dir($path)) return; $handle = dir($path); while($file=$handle->read()) { if($file!='.' && $file!='..') { $path2 = $path.'/'.$file; if(is_dir($path2)) { echo $file."\t"; getdir($path2); }else { echo $file.''; } } } } getdir($path); echo ' <HR>'; function get_dir_scandir($path){ $tree = array(); foreach(scandir($path) as $single){ if($single!='.' && $single!='..') { $path2 = $path.'/'.$single; if(is_dir($path2)) { echo $single." \r\n"; get_dir_scandir($path2); }else { echo $single." \r\n"; } } } } get_dir_scandir($path); echo ' <HR>'; function get_dir_glob(){ $tree = array(); foreach(glob('./curl/*') as $single){ echo $single." \r\n"; } } get_dir_glob(); echo ' <HR>'; function myscandir($path) { if(!is_dir($path)) return; foreach(scandir($path) as $file) { if($file!='.' && $file!='..') { $path2= $path.'/'.$file; if(is_dir($path2)) { echo $file; myscandir($path2); }else { echo $file.' '; } } } } myscandir($path); echo ' <HR>'; function myglob($path) { $path_pattern = $path.'/*'; foreach(glob($path_pattern) as $file) { if(is_dir($file)) { echo $file; myscandir($file); }else { echo $file.' '; } } } myglob($path); ?> 登入後複製 |