フォルダー内のすべてのファイルを走査するには、通常、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!='.' && $file!='..'){ if(strtolower(substr($file, -4))=='.php'){ array_push($result, $file); } } } } return $result; }?>
glob メソッドを使用してトラバースする場合、コードを簡略化できます
<?php$path = dirname(__FILE__);$result = glob($path.'/*.php'); 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 )
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.'/*'); if($curr){ foreach($curr as $f){ if(is_dir($f)){ array_push($result, $f); traversing($f, $result); }elseif(strtolower(substr($f, -4))=='.php'){ array_push($result, $f); } } } }?>
mysql を介してクエリ結果を csv メソッドにエクスポートする
php array_push と $arr[]=$value
のパフォーマンスの比較
以上がglob メソッドを使用してフォルダー内のすべてのファイルを走査する方法に関する関連メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。