Aller au contenu

[PHP] Afficher le listing d'un dossier sur 2 colonnes


Messages recommandés

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");
?>

 

<?php

echo "<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.

Lien vers le commentaire
Partager sur d’autres sites

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:

Lien vers le commentaire
Partager sur d’autres sites

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:

Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

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 ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...