Axtrane Posté(e) 7 mars 2007 Posté(e) 7 mars 2007 Bonsoir, je cherche une petite manip pour basculer l'affichage d'une liste d'images sur 2 colonnes au lieu d'une, mais un exemple parle mieux : <?php $PATH = '.';// Listage d'un répertoire $PATH if ($dir = @opendir($PATH)) {// ouverture du dossier while($file = readdir($dir)) { // lecture d'une entrée //création d'un tableau à 2 colonnes : nom + date fichiers $tab[] = array($file, filemtime($file)); // sauvegarde du nom du fichier et de sa date } closedir($dir); // fermeture du dossier } //tri du tableau sur les dates function cmp($a,$b) { if ($a[1] == $b[1]) return 0; return ($a[1] < $b[1]) ? -1 : 1; } usort($tab, "cmp"); ?> <?phpecho "<table width='100%' border='1'>"; foreach($tab as $elem) { //formatage de la date avec mktime() selon le format retourné par filemtime() echo "<tr><td><div align='center'><img src=".$elem[0]." alt=''></div><br><center>".date("d-m-Y H:i:s",$elem[1])."</center></td></tr>"; <-- a l'origine un </td><td> à la place du <br> permettait de séparer photo et date } echo "</table>"; ?> a l'origine le code permet de mettre l'image dans la 1ere colonne, et la date dans la 2eme, j'ai modifié pour mettre la date sous la photo. Ce que j'aimerais, c'est pouvoir simplement mettre les photos sur 2 colonnes, dans un tableau qui affichera au maximum 24 photos (historique d'une webcam sur 24h). Si quelqu'un sait comment s'y prendre, je le remercie fortement par avance. Citer
Axtrane Posté(e) 7 mars 2007 Auteur Posté(e) 7 mars 2007 Bon, en fouinant un peu, j'ai surtout constaté des erreurs dans l'origine de ce code là .... quelqu'un aurait un petit script php pour afficher des images d'un dossier sur 2 colonnes, avec la date d'upload de l'image en dessous ? je seche :voila: Citer
Richard Posté(e) 8 mars 2007 Posté(e) 8 mars 2007 Je n'y connais pas grand-chose en PhP, donc, à ce niveau... Es-tu obligé de passer par des tableaux ? A quoi ressemble l'affichage final ? Je te conseille de poser la question sur ce site :biere: Citer
Axtrane Posté(e) 1 avril 2007 Auteur Posté(e) 1 avril 2007 Petite mise à jour, et pas de nouvelles réponses sur devellopez : <table> <?php $file_ok = array('.jpg','jpeg'); $nb_cols = 2; // PHP5 $i = 1; if ( substr(PHP_VERSION,0,1) == 5 ) { $files = scandir('.'); foreach ( $files as $file ) { if ( in_array(substr(strtolower($file),-4),$file_ok) ) { $size = getimagesize($file); if ( $i == 1 ) { echo "<tr>\n"; } echo "<td align=\"center\">"; echo "<img src=\"".$file."\" width=\"".$size[0]."\" height=\"".$size[1]."\" alt=\"Ajouté le : " . date ("j/n/y H:i", filemtime($file))."\" /><br />\n"; echo "Ajouté le : " . date ("j/n/y H:i", filemtime($file)); echo "</td>\n"; if ( $i == $nb_cols ) { echo "</tr>\n"; $i = 0; } $i++; } } } // PHP4 else { $files = dir('.'); chdir($files->path); while($file = $files->read()) { if ( in_array(substr(strtolower($file),-3),$file_ok) ) { $size = getimagesize($file); if ( $i == 1 ) { echo "<tr>\n"; } echo "<td align=\"center\">"; echo "<img src=\"".$file."\" width=\"".$size[0]."\" height=\"".$size[1]."\" alt=\"Ajouté le : " . date ("j/n/y H:i", filemtime($file))."\" /><br />\n"; echo "Ajouté le : " . date ("j/n/y H:i", filemtime($file)); echo "</td>\n"; if ( $i == $nb_cols ) { echo "</tr>\n"; $i = 0; } $i++; } } } if ( $i == $nb_cols ) { echo "<td> </td>\n</tr>\n"; } ?> </table> Script en fonction de la version de PHP Il en ressort quelques problèmes : - la page n'apparait qu'une fois sur 5, sinon page blanche sans erreur - le format est un peu grand et pour ceux en 1024 c'est même carrément grand - l'ordre alphabétique n'est pas bon puisque les photos sont numérotées 1,10,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,3,4,5,6,7,8,9 Si quelqu'un s'y connait un peu, saurait t'il me donner son avis ? Citer
Richard Posté(e) 1 avril 2007 Posté(e) 1 avril 2007 Tu peux essayer sur ce site aussi. Désolé de ne pouvoir faire plus. :biere: Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.