ホームページ >バックエンド開発 >PHPチュートリアル >PHP はディレクトリごとに再帰ループを実装します。 Program_PHP チュートリアル
フォルダー内のすべてのディレクトリを走査し、その中のすべてのファイルを一覧表示するには、PHP 自体に readdir 関数がありますが、この関数に基づいて、ニーズを達成するために使用する別の関数を作成しました。
コードは次のとおりです | コードをコピー |
クラスリストディレクトリ{ 関数リストdir($dir){ //結果を多次元配列に保存します //キャラクターの変身結果 関数tostring($dir=""){
$this->tostring.=”ディレクトリ:”.$dir.”n”; while(false!==($item=$d->read())) { if($item!=”.”&&$item!=”..”) { $path=$dir.”/”.$item; if(is_dir($path)){ $this->深さ+=1; $this->tostring($path); }その他{ $this->tostring.=” } } } $this->深さ-=1; $d->close(); $this->tostring.=” $this->tostringを返す; } } $wapdir=”jquery”; $d=新しいリストディレクトリ($wapdir); echo $d->tostring(); ?> |
空のディレクトリを削除するのはとても簡単です~ 1つ
rmdir() 関数はそれを実行できますが、空ではないディレクトリを削除する場合は、最初にディレクトリ内のファイルを削除する必要がありますが、ディレクトリ内にサブディレクトリが存在する可能性があります。したがって、再帰的に削除する必要があります。以下は私のものです。
コードをコピー | |
関数が削除されましたir($dir){ If(!handle=@opendir($dir)){ //開くディレクトリが存在するか確認します die("そのようなディレクトリはありません"); } While(false !==($file=readdir($handle))){ If($file!=="."&&$file!==".."){ //カレントディレクトリと親ディレクトリを除外します $file=$dir .DIRECTORY_SEPARATOR.$file; If(is_dir($file)){ 削除されたir($file); } それ以外の場合は {s If(@unlink($file)){ echo "file< b> $ file</b>削除されました。 Echo "ファイル & lt; b & gt; $ ファイル & lt;/b & gt; 削除失敗! & Lt; br & gt;"; } } If(@rmdir($dir)){ echo "ディレクトリ $dir が正常に削除されました。 n"; }その他{ "ディレクトリ $dir の削除に失敗しました! n"; } } //テストプログラム $dir="/var/www/test"; 削除されたディレクトリ($dir); ? > |
true