関数 deldir($dirname){
If(file_exists($dirname)){//まずディレクトリが有効かどうかを判断します
$dir = opendir($dirname);//opendir でディレクトリを開きます
while($filename = readdir($dir)){//readdir を使用してディレクトリの内容をループします
If($filename != "." && $filename != ".."){// 2 つの特別なディレクトリ "." と ".." を除外します
$file = $dirname."/".$filename;
If(is_dir($file)){// ディレクトリであるかどうかを判断し、ディレクトリである場合は、それ自体を呼び出します
@unlink($file);//ファイルを削除
Closedir($dir);//ファイル操作ハンドルを閉じる
rmdir($dirname);// ディレクトリを削除
}
}
?>
使用例: Public は、多くのフォルダーとファイルが含まれるフォルダーです。これを削除するには、deldir($dirname) を呼び出します。
$dir='Public';// フォルダーのパスを渡します
deldir($dir);//関数を呼び出す
?>
手順: まず、Public が存在するかどうかを確認し、存在する場合は、readdir を使用して、Public ディレクトリの内容を読み取ります。2 つの特殊なディレクトリ「.」と「..」が存在する場合は、それらを除外します。フォルダーが見つかった場合は、条件が満たされなくなるまで、フォルダー自体の処理が呼び出されます。ファイルが見つかった場合は、直接削除されます。最後にレイヤーが飛び出してPublicを削除しました。
例 2、空ではないディレクトリを削除します
コードは次のとおりです |
コードをコピー |
/*
ファイルの削除とフォルダーの再帰的な削除が可能なカスタマイズされた削除機能
*/
関数 my_del($path)
{
if(is_dir($path))
{
$file_list= scandir($path);
foreach ($file_list を $file として)
{
If( $file!='.' && $file!='..')
{
My_del($path.'/'.$file);
}
}
@rmdir($path); //最初にフォルダーが空かどうかに関係なく、ここに到達した時点では空になっているため、このメソッドはフォルダーが空かどうかを判断する必要はありません
}
それ以外
{
@unlink($path); //これら 2 つの場所での警告エラーをブロックするには @ を使用するのが最善です。迷惑に見えます
}
}
$path='d:/技術資料 - コピー' //削除するフォルダー ;
//php ファイルが ANSI ではなく UTF-8 モードで、削除するフォルダーに中国語の文字が含まれている場合は、関数を呼び出す前にトランスコードする必要があります
//$path=iconv( 'utf-8', 'gb2312',$path );
my_del($path);
|
例3、成功と失敗の理由を確認できます
コードは次のとおりです
| コードをコピー
|
php
functiondeletedir($dir){
if(!handle=@opendir($dir)){// 開かれるディレクトリが存在するかどうかを確認します
die("そのようなディレクトリはありません");
}
while(false!==($file=readdir($handle))){
if($file!=="."&&$file!==".."){// 現在のディレクトリと親ディレクトリを除外します
$file=$dir.DIRECTORY_SEPARATOR.$file
if(is_dir($file)){
削除済み($ファイル);
}その他{
if(@unlink($file)){
echo"ファイル$file正常に削除されました。 ";
}その他{
echo "ファイル$file削除に失敗しました! ";
}
}
}
if(@rmdir($dir)){
echo"ディレクトリ$dir正常に削除されました。 n";
}その他{
echo "ディレクトリ$dir削除に失敗しました! n";
}
}
//テストプログラム
$dir="/var/www/test";
削除済みディレクトリ($dir);
? >
/var/www/test フォルダーの下にフォルダーとファイル test を作成します
|
シェル>タッチァァァァ
シェル>タッチBBB
シェル>touchccc
シェル>タッチィ
シェル>タッチフッフ
シェル>mkdir111
シェル>mkdir222
シェル>mkdir333
ここでは詳細は説明しませんが、それぞれ 111、222、333 フォルダーにファイルを作成して書き込み、アクセス許可を与えます
シェル>chown[url]www.www[/url]test-R
http://www.bkjia.com/PHPjc/632793.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632793.html技術記事 PHP でのファイルとディレクトリの削除は rmdir() 関数を使用して実行できますが、空ではないディレクトリを削除したい場合は、最初にディレクトリ内のファイルを削除する必要があります。ディレクトリは...
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。 |