イテレータメソッド
echo 'プログラム開始時刻:'.time().'
';
$path = 'd:/www';
echo ' プログラムend time: '.time().'
';
exit;
echo '
';
//現在のパスの下にあるすべてのディレクトリとファイル名を取得します
//この使用法は主に次の場合に使用されます。リモートサーバーディレクトリを取得するための B/S プログラム
var_dump(array_keys(iterator_to_array(new RecursiveDirectoryIterator($path))));
exit;
//現在のパスの下にあるすべてのディレクトリとファイルを反復的に取得します
function getRevDir( $path , $level = 0){
$dirIterator = new RecursiveDirectoryIterator($path);
$strSplitBar = '';
for($i=0;$i<$level;$i++){
if($i == $level-1){
$strSplitBar .= '|__';
}else{
$strSplitBar .= ' ';
}
}
foreach ($dirIterator as $key => $ fileInfo) {
if($dirIterator->hasChildren()){
$dirName = substr($key,strrpos($key, DIRECTORY_SEPARATOR)+1);
echo $strSplitBar.$dirName.'
' ; getRevDir($key, $level+1);
}else{
echo $strSplitBar.basename($key).'
';
}
}
}
プログラム開始時刻: 1402624676
プログラム終了時刻: 1402624682
opendir メソッド
echo 'プログラム開始時刻:'.time().'
';
$path = 'd:/www'
getRevDir($ path); ;
echo 'プログラム終了時刻:'.time().'
'
echo ''
//現在のパスの下にあるすべてのディレクトリとファイル名を取得します。使用法は主にリモートサーバーディレクトリを取得するために B/S プログラムで使用されます
var_dump(array_keys(iterator_to_array(new RecursiveDirectoryIterator($path))));
exit
//現在のパスとファイルの下にあるすべてのディレクトリを反復的に取得します
関数getRevDir($path, $level = 0){
$dirIterator = new RecursiveDirectoryIterator($path);
$strSplitBar = '';
if( $i == $level-1){
$strSplitBar .= '|__';
}else{
$strSplitBar .= ' '
}
}
foreach ($dirIterator as $key => ; $fileInfo){
if($dirIterator->hasChildren()){
$dirName = substr($key,strrpos($key, DIRECTORY_SEPARATOR)+1); '
getRevDir($key, $level+1);
}else{
echo $strSplitBar.basename($key).'
'
実行結果
時刻: 1402624679
プログラム終了時刻: 1402624682
時差は膨大です
ディスカッションへの返信 (解決策)
ウェブサイトのディレクトリ全体を横断するのにかかる時間はわずか 3 秒で、十分な速さです
横断の効率それでおしまい。
ディレクトリ ツリーを取得して処理するには、Linux コマンドを使用する必要がありますか?