<?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") ;
}
}
?>