ここで使用する関数は Scandir です。これは、Dir と同様に、指定されたパス内のファイルとディレクトリを一覧表示します。
> およびより強力な Glob() 関数は、指定されたパターンに一致するファイル名またはディレクトリを配列の形式で返します。
> 注意: Xiaoxie のようにコンピューターの前に長時間留まらないでください。そうしないと、Xiaoxie のように高血糖に悩まされます。
1. 単層フォルダーのスキャン:
> 単層フォルダーのスキャンの問題は、2 つの機能の結果は異なりますが、パフォーマンスはそれほど変わらないことです。
> Scandir 関数では「.」と「..」という 2 つの追加行が提供されますが、Glob では提供されません。
コードをコピー コードは次のとおりです:
function get_dir_scandir(){
$tree = array();
foreach(scandir('./') as $single){
echo $single. "< br/>rn";
}
}
get_dir_scandir();
$tree = array();
foreach('./*')
echo $single."
rn";
}
}
get_dir_glob();
2. フォルダー ツリーを再帰的にスキャンする場合、正確に言えば、Glob 関数のパフォーマンスは以前と同じです。
> Scandir 関数は、不可解にも ../ にあるファイルを 2 回スキャンします。つまり、Xiaoxie に 2 つのファイルがある場合です。
> ../b.php と ../a.php では、結果がスキャン レポートに 2 回表示されますが、これは非常に奇妙です。
コードをコピーします
コードは次のとおりです: //2010.07.25 で更新 - 次のコードは無効です$path = '..'
function get_filetree_scandir($path){
$;ツリー = array();
foreach(scandir($path) as $single){
if(is_dir('../'.$single)){
$tree = array_merge($tree,get_filetree($single)) ;
}
$tree[] = '../'.$single;
}
return $tree;
print_r(get_filetree_scandir($path));
//2010.07 に更新。 25 - 以下は新しいコードです
$path = './';
function get_filetree_scandir($path){
$result = array();
$temp = array(); ||!is_readable($path) ) return null; // ディレクトリの有効性をチェックします
$allfiles = scandir($path) // ディレクトリ内のすべてのファイルとフォルダーを取得します
($allfiles as $filename) { //ディレクトリ内のファイルをスキャンします。 Clip
if (in_array($filename,array('.','..'))) //無視します。
$fullname = $path.' /'.$filename; //完全なファイル Path を取得します
if (is_dir($fullname)) { //ディレクトリの場合は再帰を続行します
$result[$filename] = get_filetree_scandir($fullname);再帰が開始されます
}
else {
$temp[] = $filename; //ファイルの場合は配列に格納します
}
}
foreach ($temp as $tmp) { //ファイルの内容を保存します結果を保持する配列に一時配列を追加します
$result[] = $tmp; //これは機能します フォルダーを前に、ファイルを後ろに配置します
}
return $result
}
print_r(get_filetree_scandir( $path));
> Glob 関数のスキャンは非常に正確で、順序を自動的にアルファベット順に並べ替えます。
コードをコピーします
コードは次のとおりです:
$path = '..';
function get_filetree($path){ $tree = array(); /*' ) as $single){ if(is_dir($single)){ $tree = array_merge($tree,get_filetree($single)) }
else{
$tree[] = $single;
$tree を返す
}
print_r(get_filetree($path));
http://www.bkjia.com/PHPjc/324411.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/324411.html
技術記事
ここで使用する関数は Scandir です。これは、Dir と同様に、指定されたパス内のファイルとディレクトリを一覧表示するために使用されます。 より強力な Glob() 関数を使用すると、配列の形式で...
と同じものを返します。