effacer tous les fichiers d'un dossier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : effacer tous les fichiers d'un dossier

Re: effacer tous les fichiers d'un dossier

par @rthur » 04 avr. 2016, 09:37

Comme je te l'ai indiqué précédemment, ne fait pas un unlink mais d'abord un echo de la liste des fichiers et vérifie que tu obtiennes bien la liste des fichiers à supprimer.

Par ailleurs dans ton dernier code, tu n'as même pas de fonction glob()... comment veux tu que ça donne quoi que ce soit ?

Re: effacer tous les fichiers d'un dossier

par grisbi » 04 avr. 2016, 00:48

J'ai fais ça sans plus de succès :

Code : Tout sélectionner

$extension = array('jpg,jpeg,png,gif'); foreach ($extension as $files) { unlink (ROOT.'data/avatar/base/'.$nom.'.'.$files); }

pas de message d'erreur mais rien n'est effacé


merci pour une aide

Re: effacer tous les fichiers d'un dossier

par grisbi » 03 avr. 2016, 23:03

ok merci
je teste dans la semaine et je verrai

a+

Re: effacer tous les fichiers d'un dossier

par @rthur » 03 avr. 2016, 21:13

Bah reprend l'exemple de la doc (qui fonctionne) et avance progressivement jusqu'à trouver à quel moment tu fais quelque chose qui ne le fait plus fonctionner, c'est la meilleure façon de débuguer

Re: effacer tous les fichiers d'un dossier

par grisbi » 03 avr. 2016, 18:30

merci @rtur

j'ai fais ça mais ça marche pas

Code : Tout sélectionner

$uploaddir = PLX_ROOT.'data/avatars/base/'; // si le fichier est bien une image $extension=pathinfo($_FILES['avatar']['name'],PATHINFO_EXTENSION); if (stripos('.png.jpg.jpeg.gif',$extension)!==false){ $uploadfile = $uploaddir.$nom.'.'.$extension; // supprime tout avatar précédent $listavatar=glob($uploadfile); foreach($listavatar as $avatar){unlink($avatar);}
merci d'avance

Re: effacer tous les fichiers d'un dossier

par @rthur » 03 avr. 2016, 10:20

Bonjour,

Si tu as beaucoup de fichiers, c'est peut être normal que ça dépasse les 30 secondes... Dans ce cas, il faut que tu utilises la fonction set_time_limit() pour augmenter la durée d'exécution (attention à ne pas la désactiver, c'est une protection utile en cas de bug de code).

Personnellement je préfère manipuler les liste de fichiers avec la fonction glob() dans un foreach()
Regarde dans la doc php sur la fonction glob, tu as un exemple qui liste les fichiers, ça te permet de vérifier qu'il liste bien bien tous les fichiers à supprimer, et tu n'auras qu'à ajouter ensuite ton unlink()

http://www.php.net/glob

effacer tous les fichiers d'un dossier

par grisbi » 02 avr. 2016, 20:36

Bonjour

J'ai un dossier contenant des images de noms differents et d'extensions
differentes comment vider ce dossier

j'ai essayé ceci trouve sur le net et ça tourne en boucle
jusqu'a me donner l'erreur delai 30 secondes d'execution dépassé

Code : Tout sélectionner

<?php $dossier_traite = "ROOT.'data/dossier/'.$nom.'/'"; $repertoire = opendir($dossier_traite); // On définit le répertoire dans lequel on souhaite travailler. while (false !== ($fichier = readdir($repertoire))) // On lit chaque fichier du répertoire dans la boucle. { $chemin = $dossier_traite."/".$fichier; // On définit le chemin du fichier à effacer. // Si le fichier n'est pas un répertoire… if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier)) { unlink($chemin); // On efface. } } closedir($repertoire);