ホームページ >バックエンド開発 >PHPチュートリアル >くそー、なぜこの組み込み関数をこのように書くことができないのでしょうか?

くそー、なぜこの組み込み関数をこのように書くことができないのでしょうか?

WBOY
WBOYオリジナル
2016-06-13 13:12:28930ブラウズ

一体、なぜこの組み込み関数はこのように書けないのでしょうか?

PHP コード
<!--

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


Replace {*.pdf,*.doc,*.ppt} * を付けると表示されます すべてのファイル、ディレクトリ内の一部のファイル....

------解決策------ ---
次のように記述します
PHP コード
関数 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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。