Posted in PHP onMarch 20, 2014
遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。
<?php /** * @param string $dir * @return array */ function my_scandir($dir) { $files = array(); if ( $handle = opendir($dir) ) { while ( ($file = readdir($handle)) !== false ) { if ( $file != ".." && $file != "." ) { if ( is_dir($dir . "/" . $file) ) { $files[$file] = my_scandir($dir . "/" . $file); } else { $files[] = $file; } } } closedir($handle); return $files; } } function my_scandir1($dir) { $files = array(); $dir_list = scandir($dir); foreach($dir_list as $file) { if ( $file != ".." && $file != "." ) { if ( is_dir($dir . "/" . $file) ) { $files[$file] = my_scandir1($dir . "/" . $file); } else { $files[] = $file; } } } return $files; } $result = my_scandir('./'); $result = my_scandir1('./'); ?>
另一个实现方法
function fetchDir($dir) { foreach(glob($dir.'\*') as $file) { echo $file,"\n"; if(is_dir($file)) { fetchDir($file); } } } fetchDir("D:\wamp\www\any");
还可以把‘\*', 换成 DIRECTORY_SEPARATOR.'*' ,把‘\n'换成PHP_EOL ,这样可以跨平台了。
php遍历文件夹下的所有文件和子文件夹示例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@