PHP を使用して複数レベルのディレクトリを削除する方法

WBOY
リリース: 2016-08-08 09:33:50
オリジナル
887 人が閲覧しました

昨日、ディレクトリを削除する方法を尋ねる投稿 (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 チュートリアルに興味のある友人に役立つことを願っています。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!