ホームページ >バックエンド開発 >PHPの問題 >php rmdir()を使用して空ではないディレクトリを削除する方法

php rmdir()を使用して空ではないディレクトリを削除する方法

青灯夜游
青灯夜游オリジナル
2021-10-09 18:12:593899ブラウズ

削除方法: 1. scandir() 関数と foreach ステートメントを使用して、指定したディレクトリ内のすべてのファイルとフォルダーを走査します; 2. 再帰的方法を使用して、指定したディレクトリ内のすべてのファイルとフォルダーを 1 つずつ削除します。 directory は空のディレクトリになります; 3. 「rmdir (ディレクトリ パス)」ステートメントを使用して、指定したディレクトリを削除します。

php rmdir()を使用して空ではないディレクトリを削除する方法

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

rmdir() 関数を使用できます。 PHP では、指定されたディレクトリを削除します。この関数の構文形式は次のとおりです:

rmdir(string $dirname[, resource $context])

このうち、パラメータ $dirname は削除するディレクトリのパスです; $context はオプションのパラメータで、目的に使用されます。ファイルハンドルの環境を指定します。

注: rmdir() 関数を使用して指定したディレクトリを削除する場合、ディレクトリは空である必要があります また、対応するアクセス許可を持っている必要があります。関数の実行が成功した場合はTRUE、失敗した場合はFALSEが返され、空でないディレクトリを削除した場合はE_WERNINGレベルのエラーが発生します。

では、空ではないディレクトリを削除するために rmdir() を使用する必要がある場合、どうすればよいでしょうか?

このディレクトリ内のすべてのファイルとフォルダーを走査し、このディレクトリ内のすべてのファイルとフォルダーを 1 つずつ再帰的に削除できます。以下はサンプル コードで示されています:

<?php
    function deldir($path){
        //如果是目录则继续
        if(is_dir($path)){
            //扫描一个文件夹内的所有文件夹和文件并返回数组
            $p = scandir($path);
            //如果 $p 中有两个以上的元素则说明当前 $path 不为空
            if(count($p)>2){
                foreach($p as $val){
                    //排除目录中的.和..
                    if($val !="." && $val !=".."){
                        //如果是目录则递归子目录,继续操作
                        if(is_dir($path.$val)){
                            //子目录中操作删除文件夹和文件
                            deldir($path.$val.&#39;/&#39;);
                        }else{
                            //如果是文件直接删除
                            unlink($path.$val);
                        }
                    }
                }
            }
        }
        //删除目录
        return rmdir($path);
    }
    //设置需要删除的文件夹
    $path = "./test/";
    //调用函数,传入路径
    deldir($path);
?>

説明:

scandir() 関数は、指定されたディレクトリ内のすべてのファイルとディレクトリを含む配列を返します。

推奨される学習: 「PHP ビデオ チュートリアル

以上がphp rmdir()を使用して空ではないディレクトリを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。