Affichage photo aléatoire

Contenu du snippet

Ce script sert à afficher aléatoirement une des images jpg présentes sur le serveur.

Il crée un fichier texte contenant la liste de touts les jpg trouvés sur le serveur 1 fois par jour (afin d'inclure les renouvellement) lors de la première visite et affiche aléatoirement une des photos

Bonn',

Bouillou

Source / Exemple :


<?php
// ------------------------------------------------------------------------- //
// Affichage de photo aléatoire                                              //
// Bouillou                                                                  //
// Mai 2006                                                                  //
//                                                                           //
// Fonctionnement:                                                           //
// Crée un fichier texte contenant la liste de tout les jpg trouvé sur le    //
// serveur 1 fois par jour lors de la première visite.                       //
// Affiche aléatoirement 1 des photos trouvées.                              //
// ------------------------------------------------------------------------- //

 //********************
 //Création de la liste
 //********************

 $filename = 'liste_photos.txt';

 //Crée la liste 1 fois par jour pour inclure le renouvellement des photos
 //***********************************************************************

 //Date de création du fichier liste de photo
 if(file_exists($filename))
   {
    $date_file = date('d', filemtime($filename));
    $date_jour = date('d');
   }
 else
   {
    $date_file = 1;
    $date_jour = 2;
   }
 //echo $date_file . " " .$date_jour;
 if((!file_exists($filename))||($date_file != $date_jour))
   {
    //Crée la liste
    //-------------
    $file_handle = fopen($filename,'w');
    //Lance la routine de parssage
    recurse_dir('.');
    for($i=0;$i < count($Arrayrep); $i++)
        fwrite($file_handle,$Arrayrep[$i]."\r\n");
    fclose($file_handle);
    $max = count($Arrayrep)-1;
    $nb_aleatoire = rand(0,$max);
    $photo_aléatoire = $Arrayrep[$nb_aleatoire];
   }
 else
  {
   //Lit la liste existante
   //----------------------
   $file_handle = fopen($filename,'r');
   $file_content = fread ($file_handle , filesize($filename));
   fclose($file_handle);

   $file_content = explode("./",$file_content);
   $max = count($file_content)-1;
   $nb_aleatoire = rand(0,$max);
   $photo_aléatoire = './'.$file_content[$nb_aleatoire];
   $str_len = strlen($photo_aléatoire)-2;
   $photo_aléatoire = substr($photo_aléatoire,0,$str_len);
  }

 //**********************************************
 //Création de l'image miniature pour l'affichage
 //**********************************************

 //Création de l'image
 //-------------------
 $infos_img = getimagesize($photo_aléatoire);
 $largeurDestination = 150;
 //hauteur / largeur
 $rapport = $infos_img[1] / $infos_img[0];
 //Dimension de sortie
 $hauteurDestination = $largeurDestination * $rapport;

 $source = imagecreatefromjpeg($photo_aléatoire);

 $largeurSource = imagesx($source);
 $hauteurSource = imagesy($source);

 if($largeurSource > $largeurDestination)
   {
    $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)
         or die ("Erreur lors de la création de l'image");
   }
 else
   {
    $im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
         or die ("Erreur lors de la création de l'image");
    $largeurDestination = $infos_img[0];
    $hauteurDestination = $infos_img[1];
   }

 //Redimentionnement
 //-----------------
 ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);

 //Création du fichier de sortie
 //-----------------------------
 if(file_exists('tmp.jpg'))
    unlink('tmp.jpg');
 $fh=fopen('tmp.jpg','w');
 fclose($fh);
 ImageJpeg ($im,'tmp.jpg',80);

 //*************************
 //Affiche l'image de sortie
 //*************************

 echo '<a href="javascript:;" onClick="afficheMaxi(\'',$photo_aléatoire,'\')"><img src="tmp.jpg" alt="Image aléatoire" title="Cliquer pour agrandir!" width="150" border="0" /></a>';

 //Envoi du lien par mail à un ami
 echo '<a href="mailto:mail_de_mon_ami@mon_ami.com?subject=Image de la jeunesse de Bottens&bcc=info@jeunessebottens.com&body=Jette un oeil là-dessus... ;o)%0D%0A%0D%0Awww.jeunessebottens.com',$Arrayrep[$nb_aleatoire],'%0D%0A%0D%0AA bientôt,%0D%0A%0D%0AJeunesse de Bottens"><br /><font size="2" color="#FFFFFF">Envoyer à un ami</font></a>';

 //********************
 //Fonction de parssage
 //********************

 function recurse_dir($DIR)
 {
     global $Arrayrep;

     if ($ODIR = opendir($DIR))
     {
         while ($FILE = readdir($ODIR))
         {
           //Ne prend pas en compte les dossiers . et ..
             if(($FILE != ".")&&($FILE != ".."))
             {
                 $TMP = $DIR."/".$FILE ;
                 //Parse également les répertoires et sous-répertoires
                 if (is_dir($TMP))
                     recurse_dir($TMP);
                 else
                 {
                  //explode sépare le string avec le premier paramètre!
 		              $Extension_fichier = explode(".", $FILE);
 		              if(strtoupper($Extension_fichier[1]) == "JPG")
                     {
                      //Ne prend pas en compte les images se terminant
                      if (strtoupper(substr($FILE,-10)) != "_SMALL.JPG")
                          {
                           $Arrayrep[]= $TMP;
                          }
                     }
                 }
             }
         }
     }
     else
     {
      printf ("Impossible d'ouvrir le dossier") ;
     }
 }

 ?>
 
 <!-- *************************************** -->
 <!-- * Affiche source de l'image par popup * -->
 <!-- **************************************** -->
 <script language="Javascript" type="text/javascript">
 function afficheMaxi(chemin)
 	{
 	//Déclaration des variables 
 	var largeur = 0;
 	var hauteur = 0;
 	var Left = 0;
 	var Top = 0;
 
 	//Main
 	i1 = new Image();
 	i1.src = chemin;
 	largeur = i1.width + 50;
 	hauteur = i1.height + 50;
 	Left=(screen.width-largeur)/2;
 	Top=(screen.height-hauteur)/2;
 
 	html = '<html><head><title>Image jeunesse de Bottens</title></head><body leftmargin=0 marginwidth=0 topmargin=5 marginheight=20 bgcolor="#333333"><center><img src="'+chemin+'" border=0 name=image onLoad="window.resizeTo(document.imageTest.width+50,document.imageTest.height+100)"></center></body></html>';
 	popupImage = window.open('','_blank','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=0, width=500, height=375, left='+Left+', top='+Top+'');
 	popupImage.document.open();
 	popupImage.document.write(html);
 	popupImage.document.close()
 	}
 </script>

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.