ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して複数レベルのディレクトリを削除する方法
昨日、ディレクトリを削除する方法を尋ねる投稿 (chinaasp) を目にしました。以前は常に可能でしたが、昨日は問題が発生し、配下のファイルを削除しただけだったことが判明しました。
ディレクトリなので、もう少し階層があると問題が発生します。
私の場合は一時的にのみ使用できます。ディレクトリが 10 レベルを超えていない場合は問題ありません。ただし、私は再帰に慣れていないので、それしかできません
Deltree($path);rmdir($path) でこのディレクトリを削除できます。deltree($path); でこのディレクトリを直接削除できますか? ?
関数 deltree($pathdir)
{
echo $pathdir;//デバッグ時に使用します
if(is_empty_dir($pathdir))//空の場合
{
rmdir($pathdir);//直接削除
}
それ以外は
{//それ以外の場合は、 と .. を除いてこのディレクトリを読み取ります。
$d=dir($pathdir);
while($a=$d->read())
if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a); }
// ファイルの場合は直接削除します
If(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
{//ディレクトリの場合
If(!is_empty_dir($pathdir.'/'.$a))//空ですか
{//そうでない場合は、元のパスとその下位ディレクトリ名を加えたものだけを呼び出します
deltree($pathdir.'/'.$a);
}
If(is_empty_dir($pathdir.'/'.$a))
{// 空の場合は、直接削除します
rmdir($ pathdir。 '/'。$ a);
}
}
}
$d->close();
echo "ディレクトリ内のすべてのファイルを最初に削除する必要があります";//デバッグ時に使用します
}
}
関数 is_empty_dir($pathdir)
{//私のディレクトリが空かどうかの判断方法があまり良くありませんね。 . と .. 以外に空でないものがあるかどうかを確認してください。
関数?
$d=opendir($pathdir);
$i=0;
While($a=readdir($d))
{
$i++;
}
閉じられた($d)
if($i>2){return false;}
それ以外の場合は true を返します。
}
上記では、PHP を使用して複数レベルのディレクトリを削除する方法を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。