亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

php遍歷樹的常用方法匯總

2024-04-25 20:40:00
字體:
來源:轉載
供稿:網友

本文實例講述了php遍歷樹的常用方法。分享給大家供大家參考。具體如下:

一、遞歸的深度優先的算法:

<?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");

?>

二、遞歸的深度優先的算法(用了一個棧來實現)

<?php

define('DS', DIRECTORY_SEPARATOR);

function deep_first_list_files($from = '.')

{

if(!is_dir($from)) {

return false;

}

$files = array();

$dirs = array($from);

while(NULL !== ($dir = array_pop($dirs))) {

if( $dh = opendir($dir)) {

while( false !== ($file = readdir($dh))) {

if($file == '.' || $file == '..') {

continue;

}

$path = $dir . DS . $file;

if(is_dir($path)) {

$dirs[] = $path;

} else {

$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('deep_first_list_files', "D:/www/server");

?>

三、非遞歸的廣度優先算法(用了一個隊列來實現)

<?php

define('DS', DIRECTORY_SEPARATOR);

function breadth_first_files($from = '.') {

$queue = array(rtrim($from, DS).DS);// normalize all paths

$files = array();

while($base = array_shift($queue )) {

if (($handle = opendir($base))) {

while (($child = readdir($handle)) !== false) {

if( $child == '.' || $child == '..') {

continue;

}

if (is_dir($base.$child)) {

$combined_path = $base.$child.DS;

array_push($queue, $combined_path);

} else {

$files[] = $base.$child;

}

}

closedir($handle);

} // else unable to open directory => NEXT CHILD

}

return $files; // end of tree, file not found

}

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('breadth_first_files', "D:/www/server");

?>

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久婷婷天堂| 欧美视频一区二区三区…| 精品久久久久久久久中文字幕| 日韩一区二区欧美| 久久久久久久久久国产| 国产在线久久久| 911国产网站尤物在线观看| 久久久久久九九九| 不卡在线观看电视剧完整版| 久久久久久久久久久成人| 欧美激情一区二区三级高清视频| 国产日韩欧美黄色| 日韩视频在线免费| 亚洲精品一二区| 国产精品白嫩初高中害羞小美女| 亚洲欧美制服另类日韩| 欧美裸体xxxx极品少妇| 国产精自产拍久久久久久| 欧美多人爱爱视频网站| 国产精品视频色| 久久久久久久爱| 98视频在线噜噜噜国产| 欧美剧在线观看| 亚洲女同性videos| 国产91热爆ts人妖在线| 色阁综合伊人av| 国产美女高潮久久白浆| 久久久久久网址| 欧美性高潮在线| 91久热免费在线视频| 欧美在线www| 中文字幕日韩精品在线观看| 国产精品扒开腿爽爽爽视频| 国产精品一区二区三区毛片淫片| 26uuu亚洲国产精品| 国产精品免费在线免费| 热久久视久久精品18亚洲精品| 亚洲韩国日本中文字幕| 国产精品美女久久| 亚洲加勒比久久88色综合| 国产亚洲欧洲高清一区| 色悠久久久久综合先锋影音下载| 欧美一级成年大片在线观看| 国产精品亚洲一区二区三区| 91色中文字幕| 亚洲人成电影在线| 久久视频免费观看| 91亚洲精品在线| 久久av.com| 一本色道久久88亚洲综合88| 日韩亚洲成人av在线| 国产精品综合网站| 国产精品亚洲美女av网站| 国产精品久久久久7777婷婷| 91精品国产自产在线老师啪| 亚洲女性裸体视频| 亚洲性视频网址| 亚洲国产小视频在线观看| 国内精品在线一区| 国产精品嫩草影院一区二区| 国产精品久久久久久婷婷天堂| 日韩在线精品视频| 青草青草久热精品视频在线观看| 8050国产精品久久久久久| 国产精品美女呻吟| 亚洲一区二区久久久| 日韩高清电影免费观看完整版| 一区二区三区视频免费在线观看| 国产精品永久在线| 欧美日韩国产成人在线观看| 亚洲欧美日韩网| 国产精品自产拍在线观| 国产精品久久久91| 国产成人免费av电影| 亚洲精品电影久久久| 亚洲欧美激情精品一区二区| 久久国产精品偷| 91av免费观看91av精品在线| 亚洲欧美综合另类中字| 国产成人精品综合久久久| 国产精品一区二区三区久久久| 国产成人欧美在线观看| 亚洲第一精品电影| 成人有码视频在线播放| 亚洲天堂免费视频| 91精品久久久久久久久久另类| 亚洲国产成人久久综合| 中文亚洲视频在线| 日本久久91av| 成人在线播放av| 日韩中文字幕亚洲| 国产有码一区二区| 日韩精品免费一线在线观看| 欧美日韩国产一中文字不卡| 疯狂做受xxxx欧美肥白少妇| 欧美视频中文在线看| 精品视频9999| 亚洲第一区在线观看| 亚洲欧美国产一本综合首页| 亚洲精品中文字幕女同| 色偷偷av一区二区三区| 91wwwcom在线观看| 亚洲日韩欧美视频一区| 96pao国产成视频永久免费| 久久99热精品这里久久精品| 日韩av在线网页| 欧洲精品在线视频| 中文字幕9999| 97av在线播放| 成人在线播放av| 亚洲天堂一区二区三区| 中文字幕日韩欧美在线| 亚洲男人7777| 国产综合色香蕉精品| 亚洲色图35p| 亚洲一区二区中文字幕| 国产精品h片在线播放| 欧美国产中文字幕| 亚洲欧美一区二区激情| 日韩久久午夜影院| 国产精品福利在线观看| 欧美在线观看视频| 国产精品色午夜在线观看| 亚洲在线观看视频网站| 日韩中文在线中文网三级| 国产精品av在线| 2021久久精品国产99国产精品| 欧美亚洲在线视频| 亚洲视频第一页| 国产免费观看久久黄| 免费91麻豆精品国产自产在线观看| 久久久久久国产三级电影| 欧美激情va永久在线播放| 国产日韩精品在线观看| 精品无码久久久久久国产| 青草青草久热精品视频在线网站| 国产精品欧美亚洲777777| 欧美激情第一页xxx| 国产精品入口夜色视频大尺度| 国产精品视频999| 成人欧美一区二区三区黑人孕妇| 精品国产电影一区| 神马国产精品影院av| 亚洲性xxxx| 国产成人av网| 国内揄拍国内精品少妇国语| 久久久久久网址| 久久色在线播放| 日韩欧美国产激情| 国产精品久久久久久av| 精品久久久久久久久久久久久| 国产69精品久久久久9999| 亚洲护士老师的毛茸茸最新章节| 中文精品99久久国产香蕉| 亚洲高清一二三区| 爱福利视频一区| 国产精品日韩久久久久| 久久久久久久久久久国产| 国产福利精品视频| 亚洲国产精品成人一区二区| 欧美野外wwwxxx| 亚洲片国产一区一级在线观看| 日韩精品亚洲元码| 丝袜情趣国产精品|