ホームページ  >  記事  >  バックエンド開発  >  PHP はディレクトリごとに再帰ループを実装します。 Program_PHP チュートリアル

PHP はディレクトリごとに再帰ループを実装します。 Program_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:44:41774ブラウズ

フォルダー内のすべてのディレクトリを走査し、その中のすべてのファイルを一覧表示するには、PHP 自体に readdir 関数がありますが、この関数に基づいて、ニーズを達成するために使用する別の関数を作成しました。

コードは次のとおりです コードをコピー

クラスリストディレクトリ{
var $深さ;
var $ディレクトリ名;
var $list;
var $tostring;

関数リストdir($dir){
$this->dirname=$dir;
$this->深さ=0;
$this->tostring=””;
}

//結果を多次元配列に保存します
関数 getlist($dir=""){
if($dir==””)$dir=$this->ディレクトリ名;
$d=@dir($dir);
while(false!==($item=$d->read()))
{
if($item!=”.”&&$item!=”..”)
{
$path=$dir.”/”.$item;
if(is_dir($path)){
$this->深さ+=1;
$this->getlist($path);
}その他{
$this->リスト[$this->深さ][]=$item;
}
}
}
$this->リスト[$this->深さ]['ディレクトリ']=$dir;
$this->深さ-=1;
$d->close();
$this->リストを返す;
}

//キャラクターの変身結果

関数tostring($dir=""){
if($dir==”")$dir=$this->ディレクトリ名;
$d=@dir($dir);
$this->tostring.=”

    n”;
    $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.=”
  • ”.$item.”
  • n”;
    }
    }
    }
    $this->深さ-=1;
    $d->close();
    $this->tostring.=”
n”;
$this->tostringを返す;
}
}
$wapdir=”jquery”;
$d=新しいリストディレクトリ($wapdir);
echo $d->tostring();
?>

空のディレクトリを削除するのはとても簡単です~ 1つ

rmdir() 関数はそれを実行できますが、空ではないディレクトリを削除する場合は、最初にディレクトリ内のファイルを削除する必要がありますが、ディレクトリ内にサブディレクトリが存在する可能性があります。したがって、再帰的に削除する必要があります。以下は私のものです。

コードは次のとおりですコードをコピー php
関数が削除されました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);
? >





http://www.bkjia.com/PHPjc/633086.htmlwww.bkjia.com

tru​​e

技術記事フォルダー内のすべてのディレクトリを走査し、その中のすべてのファイルを一覧表示するには、PHP 自体に readdir 関数がありますが、この関数によると、現在のディレクトリのみを読み取ることができます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。