Page 1 sur 1

Afficher les images d'un dossier.

Posté : 10 août 2013, 19:23
par timotebx
Bonjour, j'utilise ce script pour lister les images d'un dossier,
<?php
$dirname = "./fichiers/$pseudo";
$dir = opendir($dirname); 

while($file = readdir($dir)) {
	if($file != '.' && $file != '..' && !is_dir($dirname.$file))
	{
		echo '<a href="'.$dirname.$file.'"><img src='.$dirname.'/'.$file.' width="100" height="100" border="2"></a>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp;';
	}
}

closedir($dir);
 ?>
mais le problème c'est qu'il me liste tous les fichiers. Comment puis-je faire pour qu'il ne me liste que les images ?
Merci.

Re: Afficher les images d'un dossier.

Posté : 10 août 2013, 20:18
par moogli
salut,


Tu peux filtrer sur l'extension (en récupérant ce qui est après le dernier point et en vérifiant que cela correspond à une extension voulue).
Tu peux aussi utiliser le type mime pour un poil plus de "sécurité" avec mime_content_type (obsolète) ou fileinfo si installée ;)


@+

Re: Afficher les images d'un dossier.

Posté : 10 août 2013, 22:50
par timotebx
Merci j'ai trouvé. Voici mon code pour ceux que ça intéresse :
			 <?php
$dirname = "./fichiers/$pseudo";
$dir = opendir($dirname); 

while($file = readdir($dir)) {
	if($file != '.' && $file != '..' && !is_dir($dirname.$file))
	{
		$extension=strrchr($dirname.$file,'.');
		$extension=substr($extension,1) ;
	if(in_array($extension,array('jpg','png','jpeg','gif')))
		{
		echo '<a href="'.$dirname.$file.'"><img src='.$dirname.'/'.$file.' width="100" height="100" border="2"></a>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp;';
	}
}
}

closedir($dir);
 ?>

Re: [RESOLU] Afficher les images d'un dossier.

Posté : 10 août 2013, 23:33
par moogli
tu peux éviter les opendir / closedir avec la fonction glob elle te permettra aussi de filtrer directement sur les extensions.

tu ne devrais pas te fier aux extensions, sauf si tu ce n'est que toi qui upload les fichiers sinon utilise le type mime ;)

@+