Inhaltsverzeichnis
php遍历子文件
Jun 20, 2016 pm 12:57 PM<?phpfunction list_dir($dirpath){ //判断路径最后一个字符是不是"\" //如果不是 则在路径后加"\" if($dirpath[strlen($dirpath)-1]!="\\"){$dirpath.="\\";} static $result_array=array(); //判断给定路径是否是一个目录 if(is_dir($dirpath)){ //打开目录句柄 $handle=opendir($dirpath); //从目录句柄中读取条目 //读取该目录下的所有文件及文件夹 while($file=readdir($handle)){ if($file=="."||$file==".."){continue;} //判断读取出来的是否是一个目录 if(is_dir($dirpath.$file)){ list_dir($dirpath.$file."\\"); }else{ //将一个或多个单元压入数组的末尾 array_push($result_array,$dirpath.$file); } } closedir($handle); } return $result_array; } $path="D:";$array=list_dir($path); foreach($array as $value){ echo $value; echo "<br>"; }?>
Nach dem Login kopieren
要是遍历d盘的时候,由于文件太多,会卡在哪里很久
有没有什么优化的方法
回复讨论(解决方案)
减少遍历的范围是唯一优化的方法
使用 glob 不递归或目录迭代器可使速度提高,但也有限
$p = './';$res = glob("$p/*");for($i=0; $i<count($res); $i++) { if(is_dir($res[$i])) foreach(glob("{$res[$i]}/*") as $f) $res[] = $f;}print_r($res);
Nach dem Login kopieren
$path = '.';$ite = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($path) );$deep = 0;foreach ($ite as $cur) { $fn = $cur->getBasename(); if($fn == '.' || $fn == '..') continue; $res[] = $fn; if(($d=$ite->getDepth()) == $deep); echo "$d $fn <br>";}
Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel
Repo: Wie man Teamkollegen wiederbelebt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Wie lange dauert es, um Split Fiction zu schlagen?
3 Wochen vor
By DDD
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Hot-Tools-Tags

Heißer Artikel
Repo: Wie man Teamkollegen wiederbelebt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Wie lange dauert es, um Split Fiction zu schlagen?
3 Wochen vor
By DDD
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

12 Beste PHP -Chat -Skripte auf Codecanyon
