Maison  >  Article  >  développement back-end  >  Comment supprimer des répertoires non vides en utilisant php rmdir()

Comment supprimer des répertoires non vides en utilisant php rmdir()

青灯夜游
青灯夜游original
2021-10-09 18:12:593841parcourir

Méthode de suppression : 1. Utilisez la fonction scandir() et l'instruction foreach pour parcourir tous les fichiers et dossiers du répertoire spécifié ; 2. Utilisez la méthode récursive pour supprimer tous les fichiers et dossiers du répertoire spécifié un par un, transformant le répertoire en vide. répertoire ; 3. Utilisez l'instruction "rmdir (chemin du répertoire)" pour supprimer le répertoire spécifié.

Comment supprimer des répertoires non vides en utilisant php rmdir()

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

En PHP, vous pouvez utiliser la fonction rmdir() pour supprimer le répertoire spécifié. Le format de syntaxe de cette fonction est. comme suit :

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

Parmi eux, le paramètre $dirname est le chemin du répertoire à supprimer ; $context est un paramètre facultatif, utilisé pour spécifier l'environnement du handle de fichier.

Remarque : Lorsque vous utilisez la fonction rmdir() pour supprimer un répertoire spécifié, le répertoire doit être vide et doit disposer des autorisations correspondantes. La fonction renvoie TRUE si elle réussit, et FALSE si elle échoue. Si un répertoire non vide est supprimé, une erreur de niveau E_WERNING sera générée.

Donc, si vous devez utiliser rmdir() pour supprimer un répertoire non vide, que devez-vous faire ?

Nous pouvons parcourir tous les fichiers et dossiers de ce répertoire et supprimer tous les fichiers et dossiers de ce répertoire un par un de manière récursive. Ce qui suit est démontré à travers l'exemple de code :

<?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);
?>

Instructions :

scandir () La fonction. renvoie un tableau contenant tous les fichiers et répertoires du répertoire spécifié

Apprentissage recommandé : "Tutoriel vidéo PHP"

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn