ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用してフォルダーとサブディレクトリを移動するための関数コード

PHP_PHP チュートリアルを使用してフォルダーとサブディレクトリを移動するための関数コード

WBOY
WBOYオリジナル
2016-07-21 15:23:45793ブラウズ

ここで使用する関数は Scandir です。これは、Dir と同様に、指定されたパス内のファイルとディレクトリを一覧表示します。

PHP_PHP チュートリアルを使用してフォルダーとサブディレクトリを移動するための関数コード
> およびより強力な 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

tru​​e

http://www.bkjia.com/PHPjc/324411.html

技術記事
ここで使用する関数は Scandir です。これは、Dir と同様に、指定されたパス内のファイルとディレクトリを一覧表示するために使用されます。 より強力な Glob() 関数を使用すると、配列の形式で...

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