Affichage photo aléatoire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 905 fois - Téléchargée 26 fois

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

Ajouter un commentaire

Commentaires

joshcom
Messages postés
10
Date d'inscription
jeudi 25 mai 2006
Statut
Membre
Dernière intervention
26 août 2007
-
Merci bien pour ce script PHP de photo j'ai déja un avec java Script mais je crois que c'est rapid avec PHP
lol
Bouillou2 Bouillou2 Bouillou2 Bouillou2
le ptit gob
Messages postés
53
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
3 juillet 2006
-
Merci Bouillou2 pour ta réponse si rapide que je l'avais même pas vu quand j'ai réécris.
merci beaucoupo à toi
le ptit gob
Messages postés
53
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
3 juillet 2006
-
Salut c'est encore moi bah finalement je fais plus simple je la garde en taille originale et je la diminue

Voilà merci quand même.
A+
cs_Bouillou2
Messages postés
11
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
31 juillet 2006
-
Salut,

L'utilisation du JPG nécessite GD lib 2. C'est une exension php à ajouter manuellement "php_gd2" dans EasyPHP si tu tests en local.

A+,

Séb
le ptit gob
Messages postés
53
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
3 juillet 2006
-
bonjour j'aime bien ton prog, mais j'ai un probleme à la ligne
77:# $source = imagecreatefromjpeg($photo_aléatoire);
Voilà le résultat:
Fatal error: Call to undefined function: imagecreatefromjpeg()
Merci pour ta futur explication,

Merci et à bientôt,
le ptit gob

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.