Maison  >  Article  >  développement back-end  >  Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

青灯夜游
青灯夜游original
2021-08-23 15:36:572891parcourir

Dans l'article précédent « Opération sur le fichier php : extraire le nom du fichier/répertoire », nous avons découvert la méthode d'obtention de la partie nom du fichier/répertoire. Cette fois, nous continuons la série sur les opérations sur les fichiers PHP et expliquons comment supprimer des fichiers ou des répertoires spécifiés. Les amis intéressés peuvent en apprendre davantage ~

Lorsque vous utilisez des fichiers/répertoires, vous pouvez non seulement opérer sur les données contenues dans les fichiers, vous pouvez également le faire. opérer sur le fichier/répertoire lui-même (comme supprimer le fichier/répertoire). Aujourd'hui, nous allons vous présenter comment supprimer des fichiers ou des répertoires spécifiés.

One : Supprimer l'opération de fichier spécifié

Pour supprimer un fichier, vous pouvez utiliser la fonction unlink($filename,$context), qui peut supprimer le fichier spécifié $ filename , le paramètre facultatif $context est utilisé pour spécifier l'environnement du descripteur de fichier. Renvoie TRUE si l'exécution réussit et FALSE si elle échoue. unlink($filename,$context)函数,它可以删除指定的文件$filename,可选参数$context用于规定文件句柄的环境。如果执行成功时返回 TRUE,失败时返回 FALSE。

下面通过具体代码示例来看看:

例1:删除同目录下的“test.txt”文件

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

<?php
header("content-type:text/html;charset=utf-8");
$file = &#39;test.txt&#39;;
if(file_exists($file)){
    if(unlink($file)){
        echo $file.&#39; 删除成功!&#39;;
    }else{
        echo $file.&#39; 删除失败!&#39;;
    }
}else{
    echo $file.&#39; 不存在!&#39;;
}
?>

输出结果为:

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

在重新打开目录,看看文件,会发现“test.txt”文件已经不存在了。

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

例2:删除D:demo目录下的“text.txt”文件

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

<?php
header("content-type:text/html;charset=utf-8");
$file = &#39;D:/demo/text.txt&#39;;
if(file_exists($file)){
    if(unlink($file)){
        echo $file.&#39; 删除成功!&#39;;
    }else{
        echo $file.&#39; 删除失败!&#39;;
    }
}else{
    echo $file.&#39; 不存在!&#39;;
}
?>

输出结果为:

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

在重新打开目录,看看文件,会发现“text.txt”文件已经不存在了。

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

如何想要删除一个目录中的全部文件,可以利用循环和readdir()获取D:demo目录下的全部文件和目录(不包括子目录),然后将其中的文件全部删除:

<?php
header("content-type:text/html;charset=utf-8");
$dir = &#39;D:/demo&#39;;
if (is_dir($dir)) {
	$info = opendir($dir);
	while (($file = readdir($info)) !== false) {//用不全等于是区分如果文件夹名字为0的时候,那么0!==false,仍然可以遍历
		if ($file != "." && $file != ".." ) {
			$path = $dir . &#39;/&#39; . $file;
			if(is_dir($path)){
				continue;
			}
			unlink($path);
		}
	}
	echo &#39;文件删除成功!&#39;;
	closedir($info);
} 
?>

输出结果为:

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

在重新打开目录,看看文件,会发现只剩下一个“img”文件夹还存在了。

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

二:删除指定目录操作

删除目录可以使用rmdir($dir,$context)

Jetons un œil aux exemples de code spécifiques :

Exemple 1 : Supprimez le fichier "test.txt" dans le même répertoire

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

<?php
	header("content-type:text/html;charset=utf-8");
    $dir = &#39;D:/demo/img&#39;;
    if(is_dir($dir)){
        if(rmdir($dir)) echo &#39;目录删除成功!&#39;;
    }else{
        echo "目录不存在!";
    }
?>

Le résultat de sortie est :

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donnéOpération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

Après avoir rouvert le répertoire et regardé le fichier, vous trouverez "test.txt" Le fichier n'existe plus.

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donnéOpération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

Exemple 2 : Supprimez le fichier "text.txt" dans le répertoire D:demo

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

<?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 = "D:/demo/";
    //调用函数,传入路径
    deldir($path);
?>

Le résultat de sortie est :

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

Après avoir rouvert le répertoire et examiné les fichiers, vous constaterez que le fichier "text.txt" n'existe plus.

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné

Comment Si vous souhaitez supprimer tous les fichiers d'un répertoire, vous pouvez utiliser loops et readdir() pour obtenir tous les fichiers et répertoires du répertoire D:demo (à l'exclusion des sous-répertoires), puis supprimer tous les fichiers qu'il contient :

rrreee Le résultat de sortie est : Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donnéat Rouvrez le répertoire et regardez les fichiers. Vous constaterez qu'un seul dossier "img" existe encore.

Opération sur les fichiers PHP : supprimer des fichiers ou des répertoires avec un chemin donné🎜🎜🎜 🎜Deux : Opération de suppression du répertoire spécifié🎜🎜🎜🎜Pour supprimer un répertoire, vous pouvez utiliser la fonction rmdir($dir,$context) est un paramètre omis, utilisé pour spécifier l'environnement de. le descripteur de fichier. Renvoie TRUE si l'exécution réussit et FALSE si elle échoue. 🎜🎜Il convient de noter que lors de l'utilisation de la fonction rmdir() pour supprimer un répertoire spécifié, le répertoire doit être vide et doit avoir les autorisations correspondantes. La suppression d'un répertoire qui n'est pas vide générera également une erreur de niveau E_WERNING. 🎜🎜Jetons un coup d'œil à l'exemple de code spécifique : Supprimez le répertoire vide "img" dans le répertoire D:demo 🎜rrreee🎜Le résultat de sortie est : 🎜🎜🎜🎜🎜Après avoir rouvert le répertoire et examiné les fichiers, vous trouvez le répertoire vide "img" "N'existe plus. 🎜🎜🎜🎜🎜Mais dans la plupart des cas, le répertoire que nous devons supprimer n'est pas vide et il contient de nombreux sous-fichiers et sous-répertoires. Comment pouvons-nous supprimer le répertoire spécifié et ses sous-fichiers et répertoires ? 🎜🎜🎜Méthode d'implémentation spécifique : vous pouvez 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🎜🎜Le code d'implémentation spécifique est donné ci-dessous :🎜rrreee🎜D'accord, c'est tout pour l'instant. vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Fonctionnement de base des fichiers PHP🎜🎜🎜🎜Recommandé :🎜"🎜Collection de questions d'entretien PHP (collection)🎜" "🎜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