Script pour afficher des images de manière aléatoire: problèmes

Script pour afficher des images de manière aléatoire: problèmes - PHP - Programmation

Marsh Posté le 17-12-2008 à 00:00:29    

Bonjour!
 
Je souhaite afficher sur la page d'accueil de mon site une photo, de manière aléatoire, à chaque fois que l'on recharge la page. Les photos sont présentes dans des répertoires de mon site.
 
En faisant des recherches sur Google, je suis tombé sur ce script, qui réalise bien ce que je veux, mais à quelques détails près...
 

Code :
  1. <?
  2. /*
  3. +----------------+
  4. | Configuration |
  5. +----------------+
  6. */
  7. $imgpath = "photos/0405/"; // chemins des images
  8. $textalter = "image aleatoire"; // texte alternative de l'image (attribut alt)
  9. /*
  10. +--------------+
  11. | Programme |
  12. +--------------+
  13. */
  14. $nodir = 0;
  15. if ($imgpath == ".." || $imgpath == "." || $imgpath == "" )
  16. {
  17.         $nodir = 1;
  18.         $imgpath = ".";
  19. }
  20. $j = strlen($imgpath);
  21. $j--;
  22. if ($imgpath[$j] != '/' && $imgpath != "." )
  23.         $imgpath .= '/';
  24. if (is_dir($imgpath))
  25. {
  26.         if ($condir = opendir($imgpath))
  27.         {
  28.                 $i = 0;
  29.                 while (($curfile = readdir($condir)) != false)
  30.                 {
  31.                         $extension = "";
  32.                         $extension = preg_replace("/.+\.(.{3,4})/", "$1", $curfile);
  33.                         if ($extension == "png" || $extension == "gif" || $extension == "bmp" || $extension == "jpg" || $extension == "jpeg" )
  34.                         {
  35.                                 $i++;
  36.                                 $images{$i} = $curfile;
  37.                         }
  38.                 }
  39.                 if ($images{1} == "" )
  40.                 {
  41.                         echo "Aucunes images dans le dossier !";
  42.                 }
  43.                 else
  44.                 {
  45.                         $i = rand(1, $i);
  46.                         $image = $images{$i};
  47.                         echo "<img src=\"";
  48.                         if ($nodir != 1)
  49.                                 echo $imgpath;
  50.                         echo "".$image."\" alt=\"".$textalter."\" />";
  51.                 }
  52.         }
  53.         else
  54.         {
  55.                 echo "Impossible d'ouvrir le dossier d'image !";
  56.         }
  57. }
  58. else
  59. {
  60.         echo "Le r&eacute;pertoire d'images sp&eacute;cifi&eacute; est incorrect !";
  61. }
  62. ?>


 
Source: http://archives.2037.org/viewtopic.php?t=92183
 
Les problèmes:
 
- Je veux pouvoir réduire la taille des photos affichées (soit en fixant une taille qui redimensionne les photos, soit en allant chercher uniquement les miniatures de mes photos, qui finissent toutes par " p.jpg " ) pour n'afficher que des "miniatures".
- Sur ces miniatures, je veux pouvoir créer un lien qui renvoie vers la photo à sa taille originale.
 
N'étant vraiment pas calé dans la création de script (je découvre ça cette année en cours et c'est dur, vu que c'est pas ma formation à la base, et je ne compte pas continuer dans cette voie l'an prochain), je fais appel à votre aide et à votre sens... de l'entraide altruiste! ^^
 
Merci d'avance, et si j'ai oublié de vous préciser des informations essentielles, n'hésitez pas à demander.

Reply

Marsh Posté le 17-12-2008 à 00:00:29   

Reply

Marsh Posté le 17-12-2008 à 08:56:55    

Il est un peu pourri ce script au passage :/ Avec glob on peut le réduire à mort, là c'est tordu.
 
Pour réduire la taille des tofs, faut passer par les extensions GD ou ImageMagick
 
Pour le lien suffit d'en afficher un dans le echo qui affiche la balise img

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed