PHP glob() 関数の使用例: 指定したフォルダー内のすべてのファイルを走査する
PHP 開発では、バッチ操作やファイルの読み取りを実現するために、指定したフォルダー内のすべてのファイルを走査することが必要になることがよくあります。この要件を達成するには、PHP の glob() 関数が使用されます。
glob() 関数は、ワイルドカードの一致パターンを指定することで、指定したフォルダー内の条件を満たすすべてのファイルのパス情報を取得できます。この記事では、glob() 関数を使用して、指定したフォルダー内のすべてのファイルを反復処理する方法を説明します。
1. glob() 関数の基本的な使い方
glob() 関数の基本的な構文は次のとおりです:
array glob ( string $pattern [, int $flags = 0 ] )
このうち、$pattern パラメータは次のことを表します。一致するワイルドカード パターン、$flags パラメータは、一致するパターンを指定するために使用されます。
戻り値: 一致が成功した場合は、一致した結果を含む配列が返されます。エラーが発生した場合は false が返されます。
次は、指定したフォルダー (「アップロード」ディレクトリなど) 内のすべてのファイルを走査する簡単な例です:
$dir = "uploads/"; $array = glob($dir."*"); print_r($array);
上記のコードは、指定したフォルダー内のすべてのファイルを出力します。情報、例:
Array ( [0] => uploads/file1.txt [1] => uploads/file2.txt [2] => uploads/picture1.jpg [3] => uploads/picture2.jpg )
2. ワイルドカード パターンを使用して指定したファイルと一致させる
指定した種類のファイルと一致させる必要がある場合は、ワイルドカード パターンを使用してこれを実現できます。たとえば、指定したフォルダー内のすべての画像ファイル (.jpg、.png など) をスキャンする必要がある場合、ワイルドカード文字 .jpg または .png を使用してファイル名と一致させることができます。
次のコードは、.jpg 拡張子を持つすべてのファイルを照合する方法を示しています。
$dir = "uploads/"; $array = glob($dir."*.jpg"); print_r($array);
上記のコードは、アップロード ディレクトリ内の .jpg 拡張子を持つすべてのファイルのパス情報を出力します。
3. 一部のファイルを無視する
指定した種類のファイルまたはフォルダーを無視したい場合は、ワイルドカード モードを使用してこれを実現できます。たとえば、ワイルドカード ! パターンを使用して、一致する結果から特定のファイルまたはフォルダーを無視できます。
次のコードは、アップロード ディレクトリ内の「ignore.jpg」という名前のファイルを無視する方法を示しています。
$dir = "uploads/"; $array = glob($dir."*.jpg"); $array = array_diff($array, glob($dir."ignore.jpg")); print_r($array);
上記のコードは、アップロード内の .jpg 拡張子を持つすべてのファイルのパスを出力します。ただし、「ignore.jpg」という名前のファイルは無視されます。
4. 一致結果を並べ替える
一致結果を並べ替える必要がある場合は、glob() 関数で $flags パラメーターを渡し、対応する並べ替えモードを設定できます。
たとえば、フラグ GLOB_BRACE | GLOB_NOSORT | GLOB_MARK を使用すると、結果を除外するモードが有効になります:
$dir = "uploads/"; $array = glob($dir."{*.jpg,*.png}", GLOB_BRACE | GLOB_NOSORT | GLOB_MARK); print_r($array);
上記のコードは、.jpg および .png 拡張子を持つすべてのファイルの結果を出力します。アップロード ディレクトリのパス情報、すべてのディレクトリが除外され、結果が並べ替えられています。
要約すると、glob() 関数は、指定したフォルダー内のすべてのファイルを簡単に操作できる実用的な PHP ファイル トラバーサル関数です。単純なファイル トラバーサルであっても、複雑なファイル処理であっても、glob() 関数を通じて実装できます。
以上がPHP glob() 関数の使用例: 指定したフォルダー内のすべてのファイルを走査するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。