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

  • 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

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...