PHP 遍历文件实现代码 |
本文标签:PHP,遍历文件 复制代码 代码如下: function Files($path) { foreach(scandir($path) as $line) { if($line==.||$line==..) continue; if(is_dir($path./.$line)) Files($path./.$line); else echo <li>.$path./.$line.</li>; } } PHP遍历文件及文件夹 加入给定文件夹 C:\\Windows\\AppPatch 1.首先获取这个文件夹下面的所有东西,也就是文件,文件夹,放一个数组里面 $fileArr = array( files => array(), //文件放一个数组 dirs => array(), //文件夹放一个数组 ) 2.如果存在子文件夹,遍历子文件夹,获取文件夹和文件,同样放进那个数组,如此循环,一个不漏 复制代码 代码如下: <?php $dir = F:\\game; function read_dir_all($dir) { $ret = array(dirs=>array(), files=>array()); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if($file != . && $file !== ..) { $cur_path = $dir . DIRECTORY_SEPARATOR . $file; if(is_dir($cur_path)) { $ret[dirs][$cur_path] = read_dir_all($cur_path); } else { $ret[files][] = $cur_path; } } } closedir($handle); } return $ret; } $p = read_dir_all($dir); echo <pre>; var_dump($p); echo </pre>; ?> php遍历一个文件夹下的所有目录及文件 在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹 。 这个题目有好多种解决方法 。但大致思路都一样 。采用递归 。 复制代码 代码如下: $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); |