Découvrez dans ce tutoriel comment supprimer les fichiers d’un dossier de votre site qui ne sont pas enregistrés dans une table phpMyAdmin
Il arrive parfois que certains webmaster oublient de mettre en place le système qui supprime des médias d’un dossier qui n’existent pas ou plus dans les enregistrements d’une table de phpMyAdmin.
Rappelons que la commande unlink en php permet de faire ce genre de chose.
C’est pourquoi je vous ai préparé un petit script de quelques lignes qui permet de faire ce genre de choses.
Connexion à phpMyAdmin
Tout d’abord nous allons créer un fichier php et y insérer le code suivant pour se connecter à phpMyAdmin puis on l’exécute.
Si aucune erreur n’est affichée, c’est que la connexion a réussie.
<?php
//Remplacez par vos identifiants
mysql_connect('localhost','login','pass') or die(mysql_error());
?>
On supprime les médias inutiles
Toujours dans le même fichier php, on rajoute le code ci-dessous à la suite qui va tout simplement créer la requête pour interroger la table MYSQL et qui va ensuite nettoyer les fichiers inutilisés.
<?php
//On créé une requête qui va interroger la table en question
$req_nettoyage = "SELECT medias FROM table" ;
$req_nettoyage_exec = mysql_query($req_nettoyage) ;
//On créé une boucle avec les résultats trouvés pour incrémenter
$i = 0 ;
while ($medias = mysql_fetch_row($req_nettoyage_exec)) {
$tab[$i] = $medias[0] ;
$i++ ;
}
//On défini le dossier qui contient les médias
$dossier = "medias";
//On ouvre le dossier en question et on nettoie
$handle = opendir($dossier);
$nbr_medias = 0;
while ($medias = readdir($handle)) {
if ($medias != "." && $medias != "..") {
if (!(in_array($medias,$tab))) {
unlink($dossier."/".$medias) ;
$nbr_medias++;
}
}
}
echo '<p>Nettoyage des médias effectués. <small>(' . $nbr_medias . ' supprimés)</small></p>';
closedir($handle);
?>