DevKB
Web Development Knowledge Base
HOME | TOP 20 | WRITE AN ARTICLE |
Sections :



RSS RSS Feed

You too, please publish your useful code snippets in any programming language :
write an article !


Valid HTML 4.0 Transitional

Plateforme d'envoi de gros fichiers en ligne
Dépannage site web
Blog infogérance
Hébergement e-mail

Aurélie Dufour - - 15/05/2009 - vue 25193 fois

Suppression de fichiers et de dossiers en PHP

Admettons que sur l'espace FTP de votre site, vous vouliez supprimer le contenu d'un dossier... Votre logiciel FTP vous indique le message suivant "Permission Denied..." . Plutôt gênant, mais en PHP, on peut contourner le problème et supprimer le contenu de ce dossier.

Voici une fonction pratique pour cela :

<?php 

function supp($target,$verbose=false) {
  $exceptions = array('.','..');
  if (!$sourcedir=@opendir($target)) {
    echo "<strong>Erreur : ouverture impossible ($target)</strong><br />\n";
    return false;
  }
  while(false!==($sibling=readdir($sourcedir))) {
    if(!in_array($sibling,$exceptions)) {
      $object=str_replace('//','/',$target.'/'.$sibling);
      if(is_dir($object)) supp($object);
      if(is_file($object)) {
        echo '<strong>'.$object."</strong> : ";
        $result=@unlink($object);
        if ($result)echo "Fichier supprimé<br />\n";
          else echo "<strong>!!! Suppression du fichier impossible</strong>\n";
      }
    }
  }
  closedir($sourcedir);
  if($result=@rmdir($target)) {
    echo "Suppression terminée<br /><hr>\n";
    return true;
  }
}

supp("./", true); ?>

Copiez-la dans un fichier que vous nommerez  "delete.php", et que vous placerez dans le dossier dont le contenu est à supprimer.

Dans un navigateur Web, allez à l'adresse "http://mon-site.tld/mon-dossier/delete.php" : vous verrez à l'écran s'afficher un log des opérations de suppression en cours... Vous vous apercevrez sur votre compte FTP que les fichiers sont effectivement effacés, y compris le fichier "delete.php".

Attention !!!

Cette méthode certes pratique est un peu "bourrin" : je vous conseille de faire une sauvegarde préalable du dossier à supprimer (comme d'ailleurs pour toute autre opération de suppression que vous feriez habituellement!). On ne sait jamais, perdre un fichier de configuration qui est pourtant utile au bon fonctionnement du site, c'est rageant !




Write a comment :
Your name :     E-mail (optional) :

AntiSpam : what animal is visible on this picture ? :

Nos partenaires : iPhone 8 Cases & Protection