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”文件
<?php header("content-type:text/html;charset=utf-8"); $file = 'test.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 删除成功!'; }else{ echo $file.' 删除失败!'; } }else{ echo $file.' 不存在!'; } ?>
输出结果为:
在重新打开目录,看看文件,会发现“test.txt”文件已经不存在了。
例2:删除D:demo目录下的“text.txt”文件
<?php header("content-type:text/html;charset=utf-8"); $file = 'D:/demo/text.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 删除成功!'; }else{ echo $file.' 删除失败!'; } }else{ echo $file.' 不存在!'; } ?>
输出结果为:
在重新打开目录,看看文件,会发现“text.txt”文件已经不存在了。
如何想要删除一个目录中的全部文件,可以利用循环和readdir()获取D:demo目录下的全部文件和目录(不包括子目录),然后将其中的文件全部删除:
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo'; if (is_dir($dir)) { $info = opendir($dir); while (($file = readdir($info)) !== false) {//用不全等于是区分如果文件夹名字为0的时候,那么0!==false,仍然可以遍历 if ($file != "." && $file != ".." ) { $path = $dir . '/' . $file; if(is_dir($path)){ continue; } unlink($path); } } echo '文件删除成功!'; closedir($info); } ?>
输出结果为:
在重新打开目录,看看文件,会发现只剩下一个“img”文件夹还存在了。
二:删除指定目录操作
删除目录可以使用rmdir($dir,$context)
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo/img'; if(is_dir($dir)){ if(rmdir($dir)) echo '目录删除成功!'; }else{ echo "目录不存在!"; } ?>
Après avoir rouvert le répertoire et regardé le fichier, vous trouverez "test.txt" Le fichier n'existe plus.
Exemple 2 : Supprimez le fichier "text.txt" dans le répertoire D:demo<?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.'/'); }else{ //如果是文件直接删除 unlink($path.$val); } } } } } //删除目录 return rmdir($path); } //设置需要删除的文件夹 $path = "D:/demo/"; //调用函数,传入路径 deldir($path); ?>
rrreee Le résultat de sortie est : at Rouvrez le répertoire et regardez les fichiers. Vous constaterez qu'un seul dossier "img" existe encore.
🎜🎜🎜 🎜Deux : Opération de suppression du répertoire spécifié🎜🎜🎜🎜Pour supprimer un répertoire, vous pouvez utiliser la fonctionrmdir($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!