J'ai déjà crée un autre sujet la dessus mais je me permet d'en faire un autre, la méthode et le but étant différent.
Voici le sujet précedent: http://www.phpfrance.com/forums/voir_sujet-9890.php
Tout marche, pas de problèmes, maintenant, je veux passer à une méthode plus "complexe" et plus "détaillée" pour que le script soit plus complet
Le problème est que devant l'ampleur de la tache, je ne sais pas trop comment démarrer.
Le principe du script et basé sur la meme chose que l'autre fois mais en plus "automatisé"(listage des dossiers et images d'un dossier et synchronisation de la bdd).
Voici tout ce qui est prévu:
La partie lecture du dossier
- - Le script liste ce qui est dans le dossier racine
- - Si l'element est un dossier, on liste son contenu et ainsi de suite
- - Si l'element est un fichier, on le liste dans un array
si c'est un sous-dossier, on a un array dans un array et ainsi de suite( le dossier racine serait donc un array multi-dimensionnel contenant tout le reste) eventuellement dautre tableau multi-dimensionnel
La partie comparaison bdd/array
- - On Liste tout les dossiers de l'array qui correspondront chacun à une catégorie de la galerie
- - On liste les catégories présente dans la bdd
- - On va sur la page de 'synchronisation" des catégorie:
- - On affiche une liste des dossiers dans l'array et pas enregistrés dans la bdd avec une case à cocher par ligne, les dossiers dont la case sera coché seront ajouté à la bdd
- - On affiche une liste des dossiers dans la bdd et qui ne sont pas dans l'array avec une case à cocher par ligne, les enregistrement dont la case sera coché seront supprimés de la bdd
- image présente dans la bdd et pas dans l'array,on supprime ce qui est en trop dans la bdd
- image présente dans l'array et pas dans la bdd, on ajoute ce qui manque dans la bdd
Voilà les grandes lignes du projet final
Donc je m'attaque au commencement, le listage récursif de tous les dossiers, le array généré reprenant l'arborescence du dossier racine.
La ou je coince, c'est pour ce tableau multimulti...multidimensionnel
Je suis capable de lister tout les fichiers, tout les dossiers mais je ne sais trop comment gerer l'array général et ses sous-tableaux
Voici les codes actuelles:
fonction.php
<?
function liste_recursive($dossier_a_parcourir,$liste,$nivo)
{
$dir = opendir($dossier_a_parcourir) ;
$nivo++;
while( $file = readdir($dir) )
{
if((is_dir($dossier_a_parcourir.'/'.$file)) && $file != '.' && $file != '..')
{
$path = $dossier_a_parcourir.'/'.$file;
$liste['listechemin'][] = $path;
$liste['listedossier'][] = $file;
$liste['listenivo'][] = $nivo;
$liste=liste_recursive($path,$liste,$nivo);
}
if((is_file($dossier_a_parcourir.'/'.$file)) )
{
if( (substr($file,-3)=="gif") || (substr($file,-3)=="jpg") || (substr($file,-3)=="JPG") || (substr($file,-3)=="png"))
{
$liste['listeimages'][] = $file;
}
else
{
$liste['listeautresfichiers'][] = $file;
}
}
}
return $liste;
}
?>
liste.php
<?php
include("config.php");
include("fonction.php");
$racine='Photos';
$nb_images_dossiers_total=0;
$nb_images_bdd_cumul=0;
$nivo = 0;
$liste = array("listechemin" => array(), "listedossier" => array(), "listenivo" => array(), "listeimages" => array());
$liste = liste_recursive($racine,$liste,$nivo);
?>
PS: bravo à ceux qui ont survécu à la lecture de tout cà, condoléances aux familles des autres