Comment supprimer des dossiers non vides en php

青灯夜游
Libérer: 2023-03-08 20:54:01
original
2574 Les gens l'ont consulté

Comment supprimer un dossier non vide en PHP : utilisez d'abord la fonction unlink() pour supprimer tous les fichiers du dossier, le format de syntaxe est "unlink(filename)" puis utilisez la fonction rmdir() ; supprimer Un dossier vide suffit et le format de syntaxe est "rmdir(dir)".

Comment supprimer des dossiers non vides en php

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

la fonction php rmdir() est utilisée pour supprimer les répertoires vides , mais si nous voulons supprimer un répertoire non vide, nous devons supprimer les fichiers ou sous-répertoires du répertoire non vide. Laissez-moi vous présenter la méthode de suppression d'un répertoire non vide en PHP.

fonction php rmdir()

rmdir — supprimer les répertoires vides

Syntaxe :

bool rmdir ( string $dirname [, resource $context ] )
Copier après la connexion

Essayez de supprimer le répertoire spécifié par dirname. Le répertoire doit être vide et doit disposer des autorisations appropriées. Une erreur de niveau E_WARNING sera générée en cas d'échec.
Paramètres :

  • dirname : Le chemin d'accès au répertoire.
  • contexte : Ajout de la prise en charge du contexte dans PHP 5.0.0.

Apprentissage recommandé : "Tutoriel vidéo PHP"

php rmdir() supprime les répertoires non vides

Comme mentionné ci-dessus, la fonction rmdir() ne peut supprimer que les répertoires vides. S'il s'agit d'un répertoire non vide, vous devez d'abord entrer dans le répertoire, utilisez la fonction unlink() pour supprimer tous les fichiers du répertoire. répertoire, puis revenez supprimer ce répertoire vide. S'il y a des sous-répertoires dans le répertoire et que le répertoire n'est pas vide, vous devez utiliser la méthode récursive. Le code source de la fonction récursive personnalisée pour supprimer un répertoire est le suivant :

<?php
/* by http://www.manongjc.com/article/27.html*/
function delDir($directory){//自定义函数递归的函数整个目录
    if(file_exists($directory)){//判断目录是否存在,如果不存在rmdir()函数会出错
        if($dir_handle=@opendir($directory)){//打开目录返回目录资源,并判断是否成功
            while($filename=readdir($dir_handle)){//遍历目录,读出目录中的文件或文件夹
                if($filename!=&#39;.&#39; && $filename!=&#39;..&#39;){//一定要排除两个特殊的目录
                    $subFile=$directory."/".$filename;//将目录下的文件与当前目录相连
                    if(is_dir($subFile)){//如果是目录条件则成了
                        delDir($subFile);//递归调用自己删除子目录
                    }
                    if(is_file($subFile)){//如果是文件条件则成立
                        unlink($subFile);//直接删除这个文件
                    }
                }
            }
            closedir($dir_handle);//关闭目录资源
            rmdir($directory);//删除空目录
        }
    }
}

delDir("mydir");//调用delDir函数

?>
Copier après la connexion

En plus du traitement de suppression récursive des répertoires non vides, nous pouvons également utiliser la commande du système d'exploitation "rm -rf " pour supprimer les répertoires non vides, mais cela doit également être fait pour des raisons de sécurité et de multiplateforme, essayez de ne pas l'utiliser.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!