php 遍历树的方法一
遍历树的方法一 递归的深度优先的算法[代码片段(44行)]
递归的深度优先的算法
<?php
define('DS', DIRECTORY_SEPARATOR);
function rec_list_files($from = '.')
{
if(!is_dir($from)) {
return array();
}
$files = array();
if($dh = opendir($from))
{
while(false !== ($file = readdir($dh))) {
if($file == '.' || $file == '..') {
continue;
}
$path = $from . DS . $file;
if (is_file($path)) {
$files[] = $path;
}
$files = array_merge($files, rec_list_files($path));
}
closedir($dh);
}
return $files;
}
function profile($func, $trydir)
{
$mem1 = memory_get_usage();
echo '<pre>----------------------- Test run for '.$func.'() ';
flush();
$time_start = microtime(true);
$list = $func($trydir);
//print_r($list);
$time = microtime(true) - $time_start;
echo 'Finished : '.count($list).' files</pre>';
$mem2 = memory_get_peak_usage();
printf('<pre>Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s</pre>',
($mem2-$mem1)/1024.0, $time);
return $list;
}
profile('rec_list_files', "D:\\www\\server");
?>
//该片段来自于http://outofmemory.cn
精彩图集
精彩文章






