Se connecter avec
S'enregistrer | Connectez-vous

[php] listage d'un repertoire d'image

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

c'est pas tres compliqué en fait... une fois que tu as lister
ton repertoire, si il n'y a que des images dedans, ben
disons que ta variable qui affiche le nom c'est $nom, ben tu ecrit une balise <img src="$nom">
et je pense qu'il y a mm moyen de reduire une image dynamiquement avec la libraire GD

Donc tu veut faire quoi exactement ?

Une page avec la liste des repertoires genre :

-rep1
-rep2
-rep3
...


Avec comme détail des miniatures, genre :

-racine
contenant : im_piti_1, im_piti_2, im_piti_3
-rep1
contenant : im_piti_1, im_piti_2, im_piti_3
-rep2...


?

THEniluje a écrithum deja pour du gif tu va droit vers les emmerde si t'as pas la biblioteque adequat installée :/ 
Que donne la section GD du phpinfo ?
rappel, j'y connais rien en php :/ 

c'est koi le gd du phpinfo :??: 

j'ai bien l'impression que je vais me tapper tout avec netscape :D 

THEniluje a écrittu créé un fichier nommé phpinfo.php avec :
  1. <?
  2. phpinfo();
  3. ?>


Maintenant tu regarde la page et tu copie/colle ici le cadre intitulé "GD" (normalement ca parle de JPEG, PNG et peut etre de GIF...)


Citation :
gd
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
T1Lib Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled

C'est mort pour le gif alors :D 

jpeg, png ou rien quoi !

Edit : Sauf si tu a moyen d'ajouter/de faire ajouter le support du gif en lecture (voire meme en écriture, mais bon si t'as la lecture tu peut toujours produire du png apres)

ftb a écritbha oui :/ 

c'est des smiley :D 

je vais me tapper un tableau en html avec des image partout :D 
ça va etre long mais bon

mais non, c pas obligé! vu que tu dois pas traiter le gif en lui mm, tu dois juste lister le repertoire, et au lieu que ca affiche le nom des fichier, tu y rajouter une balise img, et l'image sera affichée....

exemple, qui fonctionne normalment...
  1. <table>
  2. <tr>
  3. <?
  4. $handle=opendir('.');
  5. while ($file = readdir($handle))
  6. {
  7. if ($file != "." && $file != ".." && $file != "page.php") //remplacer page.php par le nom de la page (si la page est dans le mm rep evidemment
  8. {
  9. $nb_cols=3; //Ici c'est 3 colonnes
  10. echo "<td valign='center' align='center'><img src=\"$file\" border=\"0\"><td>";
  11. $i= ($i + 1) % $nb_cols;
  12. if($i==0)
  13. {echo "</tr><tr>";}
  14. }
  15. }
  16. closedir($handle);
  17. ?>
  18. </tr>
  19. </table>

JoLoCa a écrit
mais non, c pas obligé! vu que tu dois pas traiter le gif en lui mm, tu dois juste lister le repertoire, et au lieu que ca affiche le nom des fichier, tu y rajouter une balise img, et l'image sera affichée....

exemple, qui fonctionne normalment...
  1. <table>
  2. <tr>
  3. <?
  4. $handle=opendir('.');
  5. while ($file = readdir($handle))
  6. {
  7. if ($file != "." && $file != ".." && $file != "page.php") //remplacer page.php par le nom de la page (si la page est dans le mm rep evidemment
  8. {
  9. $nb_cols=3; //Ici c'est 3 colonnes
  10. echo "<td valign='center' align='center'><img src=\"$file\" border=\"0\"><td>";
  11. $i= ($i + 1) % $nb_cols;
  12. if($i==0)
  13. {echo "</tr><tr>";}
  14. }
  15. }
  16. closedir($handle);
  17. ?>
  18. </tr>
  19. </table>


cool :) 

ça marche tres bien :jap: 

(et avec le nom qui s'affiche en dessous :??:  :D  )

en tout cas merci :) 

Pour le nom qui s'affiche en dessous, spa tres compliqué
tu remplace
  1. echo "<td valign='center' align='center'><img src=\"$file\" border=\"0\"><td>";


par
  1. $file2 = str_replace(".gif","",$file);
  2. echo "<td valign='center' align='center'><img width=\"120\" height=\"75\" src=\"$file\" border=\"0\"><br>$file2<td>";

JoLoCa a écritde rien
:jap: 
j'essaye de modifié un truc dans une variable, mais j'y arrive pas :/ 

comment on fait pour rajouté avant le nom [: et apres le nom ]

pour que ça soit compatible avec un copié/collé avec la syntaxe du forum :??: 



(j'ai trouvé ou je but, va falloir que je me mette au language c avant le php :/ )

THEniluje a écritPour la taille faut mettre ca :
  1. $taille = GetImageSize("$file");
  2.  
  3. echo "<td valign='center' align='center'><img
  4. ".$taille[3]." src=\"$file\" border=\"0\"><br>\[:$file2\]<td>";


C'est dans quel but de faire ca? parce que mettre la vrai taille de l'image ou rien du tout , ca change rien non?

JoLoCa a écritoki... c'etait au cas ou :hello: 

quand la version sera definitive, je virerais les autre et ne laissera que la bonne :) 

le php c'est quand meme loin du basic [:sisicaivrai] :sweat: 

bon faut que je modifie encore un truc est ça sera bon :D 

JoLoCa a écrit
C'est dans quel but de faire ca? parce que mettre la vrai taille de l'image ou rien du tout , ca change rien non?
Ben ca peut changer s'il mettait tout a la suite, comme ca ca réserve la place :/ 

Puis de toute facon c'est mieu de bloquer la place pour evider des merdes avec le loading :) 

THEniluje a écritBen ca peut changer s'il mettait tout a la suite, comme ca ca réserve la place :/ 

Puis de toute facon c'est mieu de bloquer la place pour evider des merdes avec le loading :) 

Ha ok... bonne idée, j'y avait jamais pensé...

  1. echo "<td valign='center' align='center'>
  2. <img ".$taille[3]." src=\"$file\" border=\"0\">
  3. <br><form><input type=texte value='\[:$file2\]' size='10' name='lien' onfocus='javascript:this.form.lien.select();'></form>
  4. <td>";


Amélioration possible...

THEniluje a écrit
  1. echo "<td valign='center' align='center'>
  2. <img ".$taille[3]." src=\"$file\" border=\"0\">
  3. <br><form><input type=texte value='\[:$file2\]' size='10' name='lien' onfocus='javascript:this.form.lien.select();'></form>
  4. <td>";

Amélioration possible...

jolie :)  :jap:  :jap: 

mais le \ ds texte value='\[:$file2\]' sont de trop :) 

JoLoCa a écritche pas si c du a free ou au javascript, mais la page met assez longtemps pour se charger...
ça doit etre free

la seul qui reste est "list.php" , les autres j'ai effacé :) 

Rien.

Simple rigueur a avoir : coder des truc relativement propre, histoire de pas s'y perdre quand on remet le nez dedans.

Là vu que c'est du php ca servira pas directement a l'auteur, plus au visiteur qui se demanderait comment est obtenu l'effet de input type=text.


[:poussin_magique]

J'ai amelioré un peu le code car il y avait quelques bugs :

Tiendez ma bande :

  1. <?php
  2.  
  3. // Début de la configuration
  4. $repimages = "images/avatars/petit/";
  5. $repimagesgrd = "images/avatars/grand/";
  6. $repimagesopen = opendir($repimages);
  7. //## Fin de la configuration
  8.  
  9. // Debut du tableau
  10.  
  11. echo ( '<table>' ) ;
  12. echo ( '<tr>' ) ;
  13.  
  14. while ($repimagesfile = readdir($repimagesopen))
  15. {
  16. if ($repimagesfile != "." && $repimagesfile != ".." && $repimagesfile != "page.php")
  17. {
  18. $nb_cols=3;
  19. echo ( '<td valign="center" align="center"><a href="' . $repimagesgrd.$repimagesfile . '"><img src="' . $repimages.$repimagesfile . '" border="0"></a></td>' ) ;
  20. $i= ($i + 1) % $nb_cols;
  21.  
  22. if ($i==0)
  23. {
  24. echo ( '</tr><tr>' ) ;
  25. }
  26. }
  27. }
  28.  
  29. echo ( '</tr>' ) ;
  30. echo ( '</table>' ) ;
  31.  
  32. //## Fin du tableau
  33.  
  34. closedir($repimagesopen);
  35.  
  36. ?>

masenko a écritJ'ai amelioré un peu le code car il y avait quelques bugs :

Tiendez ma bande :

  1. <?php
  2.  
  3. // Début de la configuration
  4. $repimages = "images/avatars/petit/";
  5. $repimagesgrd = "images/avatars/grand/";
  6. $repimagesopen = opendir($repimages);
  7. //## Fin de la configuration
  8.  
  9. // Debut du tableau
  10.  
  11. echo ( '<table>' ) ;
  12. echo ( '<tr>' ) ;
  13.  
  14. while ($repimagesfile = readdir($repimagesopen))
  15. {
  16. if ($repimagesfile != "." && $repimagesfile != ".." && $repimagesfile != "page.php")
  17. {
  18. $nb_cols=3;
  19. echo ( '<td valign="center" align="center"><a href="' . $repimagesgrd.$repimagesfile . '"><img src="' . $repimages.$repimagesfile . '" border="0"></a></td>' ) ;
  20. $i= ($i + 1) % $nb_cols;
  21.  
  22. if ($i==0)
  23. {
  24. echo ( '</tr><tr>' ) ;
  25. }
  26. }
  27. }
  28.  
  29. echo ( '</tr>' ) ;
  30. echo ( '</table>' ) ;
  31.  
  32. //## Fin du tableau
  33.  
  34. closedir($repimagesopen);
  35.  
  36. ?>

faut créer des repertoire avec ton soft :??: 

Je me rapelle pu vraiment ce que j'avais fais car j'utilise pas ce code...

J'ai 2 codes perso si vous voulez.

Le 1er va afficher une image aléatoire dans un répertoire généré aléatoirement. Ce qui veut dire qu'on va pouvoir avoir plusieurs répertoires d'images ça ne posera aucun problème :

  1. <?php
  2. /****************************************************************************************/
  3. // Afficher une image aléatoirement d'un répertoire aléatoire //
  4. // Version : 1.0 //
  5. // Auteur : Tetsumaki //
  6. // Email : Tetsumaki@NetCourrier.com //
  7. // URL : <a href="http://www.area91.fr.st" target="_blank">http://www.area91.fr.st</a> //
  8. /****************************************************************************************/
  9.  
  10. echo ( '<div align="center"><b><font size="4" color="#880000">Photos</font></b></div><br />' ) ;
  11.  
  12. // Configuration
  13. $nbrep=6; // doit être impérativement égal aux nombres de répertoires total !
  14. $nomrep[1]="photos/photos_lan_01/petit/"; // Répertoire 1 | Vous pouvez rajouter des répertoires..
  15. $nomrep[2]="photos/photos_lan_02/petit/"; // Répertoire 2 | ..mais n'oubliez pas de rajouter +1..
  16. $nomrep[3]="photos/photos_lan_03/petit/"; // Répertoire 3 | ..à $nbrep sinon votre répertoire ne..
  17. $nomrep[4]="photos/photos_lan_05/petit/"; // Répertoire 4 | ..sera pas générer aléatoirement..
  18. $nomrep[5]="photos/photos_lan_06/petit/"; // Répertoire 5 | ..et donc ne servira à rien dans ce..
  19. $nomrep[6]="photos/photos_lan_07/petit/"; // Répertoire 6 | ..code >;o).
  20. $typefichiers="jpg|jpe|jpeg|gif|png"; // Extensions de fichiers à lister, séparer par "|"
  21. $urlfile="?page=photos"; // Lien ou mène l'image lorsqu'on clique dessus ( exemple : "<a href="http://www.site.com" target="_blank">http://www.site.com</a>" ou "../photos" ou "photos.php" ou etc... )
  22. //## Fin de la configuration
  23.  
  24. // Génére un répertoire aléatoirement
  25. $repgeneralea=rand(1,$nbrep);
  26. $repgener="$nomrep[$repgeneralea]";
  27. //## Fin de la génération du répertoire
  28.  
  29. // Ouverture puis listing du répertoire
  30. $repopen=opendir($repgener);
  31.  
  32. while ($filesource=readdir($repopen))
  33. {
  34. if (eregi("\.($typefichiers)$",$filesource)) $filelist[]=$filesource;
  35. }
  36. closedir($repopen);
  37. //## C'est listé, on ferme le répertoire
  38.  
  39. // Création du chemin et de l'image aléatoire ( chemin/image.ext ; exemple : "rep_01/alea_49_petit.gif" )
  40. $filealeatoire=$repgener.$filelist[floor(rand(0,count($filelist)-1))];
  41. // Fin de la création
  42.  
  43. // On affiche le résultat
  44. echo ( '<a href="' . $urlfile . '"><img src="' . $filealeatoire . '" width="120" border="1" alt="Photo aléatoire"></a>' ) ;
  45. //## The end >;o)
  46.  
  47. ?>


Voilà voilà :jap:  sinon le deuxièmes script que j'ai permet de lister le contenu d'un répertoire et de le présenter sous forme de tableau et stock les répertoires dans une base de donnée mais est un peu plus compliqué... Si vous voulez une démo du second script et si vous êtes interessé je pourrais vous le filer. si vous voulez une démo pour voir ç quoi ça ressemble ça se passe ici http://www.area91.fr.st dans la section Photos ;p

Bonjour,
Excusez moi de reveiller se poste endormis mais j'ai une petite requete a vous soumettre. Je n'y connais rien en php (je débute completement) et j'ai trouvé très interessant ce script pour lister le contenu d'un repertoire dans un tableau.

Voici ce script que j'utilise et que je trouve excelent parce qu'il n'utilise pas de base de donnée :
Citation :
<table border="10" valign="center" align="center" cellpadding="2" cellspacing="5">
<tr>
<?
$handle=opendir('./upload/');
while ($file = readdir($handle))
{
if ($file != "." && $file != ".." && $file != "page2.php" && $file != "page3.php" &$file != "bg23.JPG" &$file != "mco") //remplacer page.php par le nom de la page (si la page est dans le mm rep evidemment
{
$nb_cols=7; //Ici c'est 3 colonnes
$file2 = str_replace(".png","",$file);
echo "<td valign='center' align='center'><a href=\"upload/$file\"><img width=\"50\" height=\"45\" src=\"upload/$file\" border=\"0\"><td>";
$i= ($i + 1) % $nb_cols;
if($i==0)
{echo "</tr><tr>";}
}
}
closedir($handle);
?>
</tr>
</table>


J'aimerai savoir si une personne calée en php pouvait modifier le script pour y ajouter une pagination afin de limiter le nombre d'images affiché dans le tableau à 30 images simultanément par exemple (6 colones et 5 lignes). Ainsi on aurait un affichage du contenu du répertoire sur plusieur pages automatique avec une url du style index.php?variable=30 et des liens Suivant et Precedent pour naviguer entre les pages. Je sais qu'il existe des galeries php avec ce genre de listage et pagination a télécharger mais l'apparence n'est pas modifiable et il n'y figure pas assez de commentaire pour qu'un débutant puisse comprendre le fonctionnement.

Amicalement,

Ps : En tout cas, félicitation pour vos connaissance et pour l'aide que vous apportez sur ce forum. Merci a la personne qui a rédigé ce script qui me permet d'essayer de comprendre un petit peu le php.

Bonjour, j'aurais besoin d'une minuscule modification pour ce script ; je voudrais que le listage du répertoire soit affiché par ordre alphabétique. est ce que quelqu'un peut m'aider à trouver comment faire?
un énorme merci d'avance ^__^

mon code :
  1. <?php
  2.  
  3. // Début de la configuration
  4. $repimages = "photos/fanart/";
  5. $repimagesgrd = "images/avatars/grand/";
  6. $repimagesopen = opendir($repimages);
  7. //## Fin de la configuration
  8.  
  9. // Debut du tableau
  10.  
  11. echo ( '<table valign="top" width="100%">' ) ;
  12. echo ( '<tr>' ) ;
  13.  
  14. while ($repimagesfile = readdir($repimagesopen))
  15. {
  16. if ($repimagesfile != "." && $repimagesfile != ".." && $repimagesfile != "page.php")
  17. {
  18. $nb_cols=3;
  19. echo ( '<td valign="center" align="left">- <a href="viewfanart.php?page=photos&categories=' .$categories . '&galeries=' .$repimagesfile . '&' .$kdLink . ' ">'.$repimagesfile . '</a></td>' ) ;
  20. $i= ($i + 1) % $nb_cols;
  21.  
  22. if ($i==0)
  23. {
  24. echo ( '</tr><tr>' ) ;
  25. }
  26. }
  27. }
  28.  
  29. echo ( '</tr>' ) ;
  30. echo ( '</table>' ) ;
  31. //## Fin du tableau
  32. ?>

dada84 a dit :
J'aimerai savoir si une personne calée en php pouvait modifier le script pour y ajouter une pagination afin de limiter le nombre d'images affiché dans le tableau à 30 images simultanément par exemple (6 colones et 5 lignes). Ainsi on aurait un affichage du contenu du répertoire sur plusieur pages automatique avec une url du style index.php?variable=30 et des liens Suivant et Precedent pour naviguer entre les pages. Je sais qu'il existe des galeries php avec ce genre de listage et pagination a télécharger mais l'apparence n'est pas modifiable et il n'y figure pas assez de commentaire pour qu'un débutant puisse comprendre le fonctionnement.

Amicalement,

Ps : En tout cas, félicitation pour vos connaissance et pour l'aide que vous apportez sur ce forum. Merci a la personne qui a rédigé ce script qui me permet d'essayer de comprendre un petit peu le php.


Tu peux trouver ton bonheur ici :
Lettre par lettre : http://www.phpcs.com/codes/LISTING-FICHIERS-REPERTOIRE-...
Pagination : http://www.phpcs.com/codes/LISTER-IMAGES-REPERTOIRE_134...

;) 
Lassé par la pub ? Créez un compte