一体、なぜこの組み込み関数はこのように書けないのでしょうか?
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->$path = 'E:/Zl/资料-1/资料库/3005 奥迪A6L新型C6原厂资料'; function get_filetree($path){ $tree = array(); foreach(glob($path."/{*.pdf,*.doc,*.ppt}", GLOB_BRACE) as $single){ if(is_dir($single)){ $tree = array_merge($tree,get_filetree($single)); } else{ $tree[] = $single; } } return $tree; } print_r(get_filetree($path));
関数 get_filetree($path){ $tree = 配列(); foreach(glob($path."/*.{pdf,doc,ppt}", GLOB_BRACE) as $single) { if(is_file($single)) $tree[] = $single; } foreach(glob($path."/*", GLOB_ONLYDIR ) as $single) { $tree = array_merge($tree,get_filetree($single)); } $tree を返します。 } <br><font color="#e78608">------解決策------------------</font><br> #6のあなたの方法も可能ですが、間違ったターゲットを使用しています<br>if(glob($path."*/*.{pdf,doc,ppt}", GLOB_BRACE)){<br>は if(glob($single."{pdf,doc,ppt}", GLOB_BRACE)){<br>目的は、$single のサフィックスが要件を満たしているかどうかを判断することです<br><br># のコード4: <br> / /修飾されたファイル名をすべて取得します<br> foreach(glob($path."/*.{pdf,doc,ppt}", GLOB_BRACE) as $single) {<br> if(is_file($ single)) $tree[] = $single;<br> }<br> //すべてのサブディレクトリを走査します<br> foreach(glob($path."/*", GLOB_ONLYDIR ) as $single) {<br> $tree = array_merge( $tree,get_filetree($single));<br> }<br> <br><div class="clear"></div>