Jump to content

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


Recommended Posts

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.

Link to comment
Share on other 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:

Link to comment
Share on other 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 ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...