Faire une liste des fichiers FTP
Résolu
Nenyim
Messages postés
72
Date d'inscription
Statut
Membre
Dernière intervention
-
Nenyim Messages postés 72 Date d'inscription Statut Membre Dernière intervention -
Nenyim Messages postés 72 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je rencontre actuellement un petit soucis lors de la création d'une liste de fichiers à supprimer sur mon FTP.
Je m'explique.
Il s'agit d'un site comprenant beaucoup d'images de couvertures. Il arrive très souvent que ces couvertures changent par la suite, l'administrateur renvoie donc une nouvelle couverture pour remplacer la précédente, mais cette ancienne image n'est pas supprimée.
Je me retrouve donc avec des centaines d'images doublons dont j'aimerai bien me débarrasser.
Pour se faire, j'ai donc créer une page en php qui compare deux tableaux :
- Le premier va chercher les images contenu dans le dossiers FTP
- Le deuxième fait une liste des images qui sont utilisées dans la bdd
Il compare le tout afin de me sortir une liste des fichiers présent sur le FTP qui ne sont pas appelés par la base de donnée, autrement dit mes doublons donc.
Mon seul soucis, c'est qu'au début la liste est correcte, je peux supprimer sans soucis, mais à un moment, et je ne sais pas lequel, ma liste déconne et me cite des images qui sont appelées dans la base et qui servent donc sur le site. Je n'arrive pas à savoir pourquoi tout d'un coup ça déconne. L'administrateur du site au début renommait ses images sans faire attention, donc avec des espaces par exemple. Est ce que ça peut venir de là et si oui comment je peux m'y prendre pour que ma liste soit correcte ?
Mon but étant, une fois que ma liste est correct, lancer une suppression auto de mes doublons sans devoir le faire une par une (j'ai un peu plus de 1500 images à supprimer :(
Voici mon code générant la liste, des fois que le problème soit dedans.
L'un de vous aurait il une idée/piste ?
Merci d'avance.
je rencontre actuellement un petit soucis lors de la création d'une liste de fichiers à supprimer sur mon FTP.
Je m'explique.
Il s'agit d'un site comprenant beaucoup d'images de couvertures. Il arrive très souvent que ces couvertures changent par la suite, l'administrateur renvoie donc une nouvelle couverture pour remplacer la précédente, mais cette ancienne image n'est pas supprimée.
Je me retrouve donc avec des centaines d'images doublons dont j'aimerai bien me débarrasser.
Pour se faire, j'ai donc créer une page en php qui compare deux tableaux :
- Le premier va chercher les images contenu dans le dossiers FTP
- Le deuxième fait une liste des images qui sont utilisées dans la bdd
Il compare le tout afin de me sortir une liste des fichiers présent sur le FTP qui ne sont pas appelés par la base de donnée, autrement dit mes doublons donc.
Mon seul soucis, c'est qu'au début la liste est correcte, je peux supprimer sans soucis, mais à un moment, et je ne sais pas lequel, ma liste déconne et me cite des images qui sont appelées dans la base et qui servent donc sur le site. Je n'arrive pas à savoir pourquoi tout d'un coup ça déconne. L'administrateur du site au début renommait ses images sans faire attention, donc avec des espaces par exemple. Est ce que ça peut venir de là et si oui comment je peux m'y prendre pour que ma liste soit correcte ?
Mon but étant, une fois que ma liste est correct, lancer une suppression auto de mes doublons sans devoir le faire une par une (j'ai un peu plus de 1500 images à supprimer :(
Voici mon code générant la liste, des fois que le problème soit dedans.
<?php $liste_bdd = Array(); $liste_ftp_en_trop = Array($buff); // Mise en place d'une co basique $conn_id = ftp_connect("***")or die("erreur de connexion au serveur"); // Identification $login_result = ftp_login($conn_id, id, mdp); // On récupère la liste des fichiers $buff = ftp_nlist($conn_id, '/web/images/couverture'); // Fermeture de la co ftp_close($conn_id); // Affiche la liste FTP // var_dump($buff); // BDD $db = mysqli_connect('localhost','id','mdp') or die ("erreur sql ".mysqli_error()); mysqli_select_db ($db, 'bdd') or die ("erreur sql ".mysqli_error()); $sql = 'SELECT couverture_album FROM album'; $res = mysqli_query($db, $sql); while ($val = mysqli_fetch_array($res)) { $liste_bdd[] = $val['couverture_album']; } // Affiche la liste BDD // var_dump($liste_bdd); // trouver les éléments FTP qui ne sont pas dans la BDD for($i=0;$i<sizeof($buff);$i++) { if (!in_array($buff[$i], $liste_bdd)) { $liste_ftp_en_trop[] = $buff[$i]; } } // lister les éléments en trop sur le ftp for($i=0;$i<sizeof($liste_ftp_en_trop);$i++) { echo $liste_ftp_en_trop[$i].'<br />'; } // on ferme la connexion à mysql mysqli_close(); ?>
L'un de vous aurait il une idée/piste ?
Merci d'avance.
A voir également:
- Afficher la liste des fichiers de /etc dont le nom commence par c ou r
- Liste déroulante excel - Guide
- Comment réduire la taille d'un fichier - Guide
- Renommer des fichiers en masse - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms - Forum LibreOffice / OpenOffice
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
1/ j'ai test de supprimer toutes les entrées de cette liste automatiquement et j'avais des soucis d'image qui n'apparaissaient plus.
2/ J'ai compté le nombre de fichier à supprimer (j'ai fait compter^^) dans cette liste et j'ai comparé avec ce qu'il doit me rester et il me manque environ 800 images que mon script supprime alors qu'il ne faudrait pas :/
Peut être est il possible, avec un LIKE, de reprendre la liste que j'ai faite et de la comparer avec la liste de la bdd pour savoir ou ça commence à planter ?
Ca me sort la même liste :/