ホームページ  >  記事  >  バックエンド開発  >  glob メソッドを使用してフォルダー内のすべてのファイルを走査する方法に関する関連メソッド

glob メソッドを使用してフォルダー内のすべてのファイルを走査する方法に関する関連メソッド

jacklove
jackloveオリジナル
2018-06-09 10:34:402227ブラウズ

フォルダー内のすべてのファイルを走査するには、通常、opendir メソッドと readdir メソッドを使用して走査できます。

例: 指定されたディレクトリ内のすべての php ファイルを検索します (サブフォルダーは検索しないでください)、コードは次のとおりです:

<?php$path = dirname(__FILE__);$result = traversing($path);
print_r($result);function traversing($path){
    $result = array();    if($handle = opendir($path)){        while($file=readdir($handle)){            if($file!=&#39;.&#39; && $file!=&#39;..&#39;){                if(strtolower(substr($file, -4))==&#39;.php&#39;){
                    array_push($result, $file);
                }
            }
        }
    }    return $result;
}?>

glob メソッドを使用してトラバースする場合、コードを簡略化できます

<?php$path = dirname(__FILE__);$result = glob($path.&#39;/*.php&#39;);
print_r($result);?>

、glob は ## を返します#path search 結果のパス (例: path='/home/fdipzone')。上記の例では

Array(
    [0] => /home/fdipzone/a.php
    [1] => /home/fdipzone/b.php
    [2] => /home/fdipzone/c.php
)

が返されます。これは、opendir によって返される結果とは異なります。そしてreaddir。

現在のディレクトリを移動するだけの場合。これは次のように変更できます:

glob('*.php');
glob 構文の説明:

array glob ( string $pattern [, int $flags = 0 ] )

glob () この関数は、一般的なシェルで使用されるルールと同様、libc glob() 関数で使用されるルールに従って、pattern に一致するすべてのファイル パスを検索します。略語展開やパラメータ置換は行われません。 Glob は、通常のパス マッチングを使用する場合に強力です。

flags 有効なフラグは次のとおりです。
GLOB_MARK - 返される各項目にスラッシュを追加します。
GLOB_NOSORT - ファイルを返します。ディレクトリ内の元の出現順序 (ソートされていません)
GLOB_NOCHECK - 一致するファイルがない場合の検索に使用されるパターンを返します
GLOB_NOESCAPE - バックスラッシュ メタ文字をエスケープしません
GLOB_BRACE - {a,b,c} を展開して 'a'、'b'、または 'c' に一致させます
GLOB_ONLYDIR - パターンに一致するディレクトリ エントリのみを返します
GLOB_ERR - エラー メッセージ (読み取り不能なディレクトリなど) を停止して読み取ります。デフォルトではすべてのエラーを無視します。

例: 指定されたディレクトリ内のすべての php ファイルを走査するには、glob メソッドを使用します。フォルダー (サブフォルダーを含む)

<?php$path = dirname(__FILE__);$result = array();
traversing($path, $result);
print_r($result);function traversing($path, &$result){
    $curr = glob($path.&#39;/*&#39;);    if($curr){        foreach($curr as $f){            if(is_dir($f)){
                array_push($result, $f);
                traversing($f, $result);
            }elseif(strtolower(substr($f, -4))==&#39;.php&#39;){
                array_push($result, $f);
            }
        }
    }
}?>

この記事では、glob メソッドを使用してフォルダー内のすべてのファイルを検索する方法について説明します。その他の関連コンテンツにも注目してください。

関連する推奨事項:

PHP 浮動小数点数比較メソッドの説明

mysql を介してクエリ結果を csv メソッドにエクスポートする

php array_push と $arr[]=$value
のパフォーマンスの比較

以上がglob メソッドを使用してフォルダー内のすべてのファイルを走査する方法に関する関連メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。