Précharger toutes les images d'un répertoire

Contenu du snippet

Cette fonction permet par exemple de précharger toutes les images d'un site (boutons, survols, etc...), pour peu que toutes ces images soient dans un même répertoire.

Il s'agit tout simplement de parcourir le répertoire, et d'extraire les noms des fichiers image afin des les précharger à l'aide des CSS et de la propriété display:none.

La fonction attend en paramètre le chemin (absolu ou relatif) du répertoire, par exemple : preload("images/boutons/");

Source / Exemple :


<?php
function preload($rep)
{
  chdir("$rep");
  $dossier=getcwd();
  //Compatibilité path Unix et windows
  if (strpos($dossier,"\\")) {$dossier.="\\";}
  else {$dossier.="/";} 

  if ($handle = @opendir($dossier))
  {
   //boucle de parcours de tous les éléments du répertoire
   while (($file = @readdir($handle)) !== false)  
   {
       if (@getimagesize("$rep/$file")) //renvoi FAUX si le fichier n'est pas une image
       { $img[] = "<img src='$rep/$file' style='display:none;' alt='' />\n"; }
   }
  }
  @closedir($handle);
  return $img;
}?>

Appel : <?php $tabImg=preload("img"); ?>
Puis, <?php foreach($tabImg as $i) echo $i; ?>

Conclusion :


Le preload en CSS est inspiré de ce très bon site : http://www.alsacreations.com/articles/preload/

...Petite correction suggérée, à juste titre, par R@f ;o)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.