Vous êtes ici Codes PHP et MySQL > Images > Photo du jour choisi de manière aléatoire à partir...

 

Photo du jour choisi de manière aléatoire à partir d'un répertoire

Vous désirez afficher une image différente tous les jours ?
Ce script est fait pour vous.
Le principe est simple, un fichier texte contient le jour et le nom de l'image a afficher, reste plus qu'à afficher si la date est la meme, sinon on choisi une nouvelle image de manière aléatoire et elle s'affiche pour la journée !!
 
KOogar
Site de l'auteur voir
[68] sources en PHP voir
Code vu 14479 fois
Enregistré le 27 Avril 2005
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Photo du jour choisi de manière aléatoire à partir d'un répertoire
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Photo du jour choisi de manière aléatoire à partir d'un...*/
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts124-PHP.htm              */
/* Auteur         : KOogar                                                    */
/* Date édition   : 27 Avril 2005                                             */
/* Website auteur : http://ref.nc                                             */
/*                                                                            */
/******************************************************************************/


// TITRE
// Photo du jour choisi de manière aléatoire a partir d'un répertoire

// EXPLICATIONS
// Vous désirez afficher une image différente tous les jours ?
// Ce script est fait pour vous.
// Le principe est simple, un fichier texte contient le jour et
// le nom de l'image a afficher, reste plus qu'a afficher si la date
// est la meme, sinon on choisi une nouvelle image de manière aléatoire
// et on l'affiche pour la journée !!

// CAS PARTICULER
// Le code verifie que vous soyez bien le REFERER pour la mise à jour
// cela empeche les moteurs de recherches de pinger le code ;)
// Si le script ne marche pas c'est que votre serveur serveur ne renvoi
// pas le REFERER, c'est tres rare mais cela peut arriver
// Si c'est le cas -> changer cette ligne: if($rel != FALSE) par if($rel == FALSE)

// EXECUTION DU SCRIPT
// 1° Mettez vos images dans un repertoire que vous nommer + bas
// 2° Créer le fichier info_image.txt et n'oubliez pas d'ouvrir
//    les droits en écriture sur ce fichier ou utiliser
//    chmod ($fichier_text, 0777); si votre serveur le permet
// 3° Get fun !!!


$nomRepertoire "votre_repertoire_ici";
$fichier_text  "info_image.txt";

// lit le fichier selon la ligne
 function lire($fichier$ligne)
 {
  if (file_exists($fichier))
  {
  if($res fopen($fichier,"r+"))
  {
  while(!feof($res))
  { $result[]= fgets($res,1000000); }
  fclose($res);
  $tab=$result;
  $result=$tab[$ligne-1];
  return $result;
  }
  }
  }
// info du fihier
  $elt1 explode("/"lire($fichier_text,"1") );
// date du jour
  $elt2 explode("/"date("d/m") );


// date similaire
  if ($elt1[0] == $elt2[0])
   {
   $image lire($fichier_text,"2");
  // SORTIE PRINT  SORTIE PRINT //
   echo '<img scr="',$nomRepertoire,'/',$image,'" alt="" /><br />';
   }


// mise a jour avec une image aléatoire
  else
  {
  $imgs = array();
  $dossier opendir($nomRepertoire);
  $i=0;

  while ($Fichier readdir($dossier))
  { $imgs[$i] .= $Fichier;  $i++;
  }
  closedir($dossier);

  srand ((double)microtime()*10000000);
  $nbr rand(1, ($i-1));

// check le referer et ecrit la nouvelle date

  $referer $_SERVER["HTTP_REFERER"];
  $host $_SERVER["HTTP_HOST"];
  $rel strstr($referer,$host);
  if($rel != FALSE) {
//  chmod ($fichier_text, 0777);
  $f fopen($fichier_text"w");
  fwrite($f,date("d/m"));
  fwrite($f,"\n");
  fwrite($f,$imgs[$nbr]);
  fclose($f);
//  chmod ($fichier_text, 0755);
  }


  // SORTIE PRINT  SORTIE PRINT //
  echo '<img scr="',$nomRepertoire,'/',$imgs[$nbr],'" alt="" /><br />';
 }

?> 
 

Fonctions du code

: Vérifie si un fichier ou un dossier existe - (PHP 4, PHP 5)
: Ouvre un fichier ou une URL - (PHP 4, PHP 5)
: Teste la fin du fichier - (PHP 4, PHP 5)
: Récupère la ligne courante sur laquelle se trouve le pointeur du fichier - (PHP 4,...
: Ferme un fichier - (PHP 4, PHP 5)
: Coupe une chaîne en segments - (PHP 4, PHP 5)
: Formate une date/heure locale - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Crée un tableau - (PHP 4, PHP 5)
: - (PHP 4, PHP 5)
: Lit une entrée du dossier - (PHP 4, PHP 5)
: Ferme le pointeur sur le dossier - (PHP 4, PHP 5)
: Retourne le timestamp UNIX actuel avec les microsecondes - (PHP 4, PHP 5)
: Initialise le générateur de nombres aléatoires - (PHP 4, PHP 5)
: Génère une valeur aléatoire - (PHP 4, PHP 5)
: Trouve la première occurrence dans une chaîne - (PHP 4, PHP 5)
: Écrit un fichier en mode binaire - (PHP 4, PHP 5)
Commentaires
Génial !lol
 
je reviens sur le site pour dire que ce calendrier est carrement génial!!

Merchi merchi :P
 
Merci pour ce script j'utilise sur mon site http://f19.free.fr/f19/articles.php?lng=fr&pg=108

Mais j'ai constater un bug à la ligne 69. J'ai du remplacer la ligne : $nbr = rand(0 ($i-1)); par $nbr = rand(1, ($i-1)); car au niveau zero il y a les deux points du retour au dossier parent.
 
Bien vu ;-)

J'ai modifié le script. Merci
 
Ca commence à marcher chez moi !
Mais comment faut -il faire pour que les photos aléatoires soient à la bonne dimension sur le site ?
QUESTION 1Faut -il les formater toutes à la même dimension avant de les stocker dans le repertoire 'votre repertoire'? Comment faites vous ?
QUESTION 2 : pouvez vous donner aussi l'exemple de l'appel de cette photo aléatoire dans la page html, avec tous les details de formatage ?
MERCI !!
Patrick_DLS
 
ET malgré le rand (1 etc.. ) corrigé, le second jour j'ai toujours dans le un fichier texte jour/date .. et ca calle !
Merci de m'éclairer
 
le second jour de quoi ? as-tu bien mis ton fichier txt en chmod 777 sur ton serveur ?
 
Ca progresse ! Mais il reste quelques troubles :
*pourquoi autant chez moi que chez superouioui (voir http://f19.free.fr/f19/articles.php?lng=fr&pg=108) , le cadre apparait un peu trop haut et trop large par rapport à la photo ?
Secundo, est-ce normal qu'il ny' a pas toute la liste de photos du repertoire qui se mette dans le fichier txt.
Tertio : comment modifier le script pour qu'il mette une marque dans le nom ou qu'il detruise les photos deja utilisées, pour ne les afficher qu'un jour chacune ?
MERCI !
P.
 
"Le cadre apparait un peu trop haut ??"
Ca ce n'est pas du php, c'est de l'habillage, regarde du cote css.
Un code place dans img genre style="margin-bottom:5px;" devrait suffir

Pour le reste: voila comment ca marche. Le code ecrit 2 choses dans le fichier texte:
- la date
- le nom de l'image

C'est tout. A chaque fois le code regarde la date. Si elle est differente de la date d'aujoudh'ui, on met a jour.
Pas plus compliqué que ca.

Est-ce que chez free, tu peux laisser un fichier .txt ouvert en écriture ? La est le probleme à mon avis.
 
Je confirme chez free ça marche.
J'ai mis le scipte php à l'exterieur du site. Pour retrouver la photo sur mon site j utilise comme toi une iframe :



Pour retirer le cadre il faut rajouter le parametre : FRAMEBORDER="no"
tu peux colorer le fond de la page de ta photo de la même couleur que le fond de ton site.


 
Merci, tout ça est bien compris !
Est-ce que quelqu'un peut modifier le script pour qu'il detruise la photo qu'il vient d' utiliser, pour ne les afficher qu'un jour chacune et peu à peu 'vider le réservoir" de photos ?
CE serait complet !
Merci.
 
Alors qui peut m'aider à modiier le script :
quand le jour change, il
 
voila voila!!

donc juste apres le else =>

else
{
// prend le nom de l'image du fichier texte
$image_del = lire($fichier_text,"2");
// et supprime l'image pour qu'elle ne soit jamais reprise
delete ($image_del );
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 

Connexion

 
 

Images

 
 

PHP

 
 
        Publicité