Posted in PHP onMay 04, 2011
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);
PHP 遍历文件实现代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@