begin process at 2010 03 21 11:49:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > AFFICHER LA PHOTO DU JOUR CHOISI DE MANIÈRE ALÉATOIRE À PARTIR D'UN RÉPERTOIRE

AFFICHER LA PHOTO DU JOUR CHOISI DE MANIÈRE ALÉATOIRE À PARTIR D'UN RÉPERTOIRE


 Information sur la source

Note :
8,83 / 10 - par 6 personnes
8,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Initié Date de création :09/05/2005 Date de mise à jour :09/05/2005 20:10:57 Vu :6 635

Auteur : LaurentKOogar

Ecrire un message privé
Site perso
Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note

 Description

TITRE
Afficher la photo du jour choisi de manière aléatoire à partir d'un répertoire.

EXPLICATIONS
Vous désirez afficher une image différente tous les jours ? Ce script est fait pour vous.
Le script est trés simple à utiliser.

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

Source

  • <?php
  • $nomRepertoire = "le_nom_de_votre_repertoire_ici"; // sans le /
  • $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 fichier
  • $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 SRC="',$nomRepertoire,'/',$image,'" BORDER = "0" /><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(0, ($i-1));
  • //
  • // 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 SRC="',$nomRepertoire,'/',$imgs[$nbr],'" BORDER = "0" /><br />';
  • }
  • ?>
<?php 

$nomRepertoire = "le_nom_de_votre_repertoire_ici";  // sans le /
$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 fichier 
  $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 SRC="',$nomRepertoire,'/',$image,'" BORDER = "0" /><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(0, ($i-1)); 

// 
//  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 SRC="',$nomRepertoire,'/',$imgs[$nbr],'" BORDER = "0" /><br />'; 
} 

?> 



 Historique

09 mai 2005 20:10:57 :
correction orthographe des commentaires

 Sources du même auteur

Source avec Zip Source avec une capture WEB TOP LISTE
Source avec Zip PHPMYPARTENAIRE V1.0 - ANNUAIRE DE PARTENAIRES (SITES WEB) A...
EMPÊCHE LA PAGE D'ÊTRE STOCKÉE DANS LE CACHE
TRAQUER GOOGLE
VISIONNEUSE SUR 2 COLONNES AVEC ZOOM ET SUPRESSION DU FICHIE...

 Sources de la même categorie

Source avec Zip Source avec une capture WINN GUESTBOOK FR par negstek76
Source avec Zip CHIFFRES EN LETTRES par zied9b
Source avec Zip Source avec une capture GRACENATUR V02 - CDMS: CONTAIN AND DESIGN MANAGMENT SYSTEM par sajaris
Source avec Zip SIMULBAL: SERVEUR POUR BALANCES ÉLECTRONIQUES DE LABORATOIRE... par laservert
Source avec Zip GESTION D'ESPACE MEMBRES par jmpicot

Commentaires et avis

Commentaire de malalam le 10/05/2005 12:21:31 administrateur CS

Hello,

tes balises <img... /> ne sont pas tres jolies...
Pourquoi ne passes tu pas en parametre de ta fonction le chemin du repertoire des photos, et le fichier texte, plutot que de les faire declarer a l'exterieur ?
La :
while ($Fichier = readdir($dossier))
tu dois mettre :
while (false !=== ($Fichier = readdir($dossier)))

Sinon ok :-) Je n'ai pas teste mais ca doit pouvoir etre utile a certains.

Commentaire de la_pin le 11/05/2005 14:07:30

fichier zip introuvable....
je peux pas télécharger le zip, tu peux me donner un contenu exemple de info_image.txt pliz ?

Commentaire de LaurentKOogar le 11/05/2005 14:31:11

info_image.txt  est un fichier vide au départ, tu as juste à le créer. Et le placer au meme niveau que le fichier ou tu as placer le script php :)

Commentaire de la_pin le 11/05/2005 15:26:50

Lol
merci ^^

Commentaire de LaurentKOogar le 23/05/2005 14:49:50

oupsi, rien compris Malaman, !=== ca existe pas en php

Commentaire de malalam le 23/05/2005 17:06:23 administrateur CS

Petite faute de frappe, desole ;-) :
IL fallait lire !==

Commentaire de defrancesco le 13/12/2007 09:22:00 10/10

Super petit script qui marche très bien. Il es facile à installer. A conseiller à ceux qui veulent rendre plus dynamique leur page d'accueil.

Commentaire de fabrice88 le 21/12/2007 07:51:26

bonjour, est ce que si j'ai des sous répertoires d'images le script fonctionnes toujours ?
si se n'est pas le cas pouvez vous améliorer le scipt dans se sens et nous faire part de l'évolution ?

Merci

(NB : j cherche se genre de script depuis des mois mais ... RIEN )

Commentaire de LaurentKOogar le 21/12/2007 08:40:48

aucun probleme, va y tranquille ;)

$nomRepertoire = "rep1/rep2/rep3";

Commentaire de fabrice88 le 21/12/2007 09:42:50

Ok. Mon problème comme je suis un gros fainéant :D y'a t'il un moyen pour que le script lise tout seul les répertoires ?

En fait c pour ma galerie photos. Je rajoute régulièrement des galeries à ma galerie et chacune de ces galeries a son propre répertoire. Le fait que le système soit automatisé éviterait d'aller changer le code à chaque fois que je rajoute une galerie.
Voilà, si y'a des gens qui sont intéressé pour automatisé le code...

Merci.

Commentaire de LaurentKOogar le 21/12/2007 09:50:33

tu iras 100 fois plus vite si tu fais une copie de tes photos dans un repertoire unique.

Regarde du coté de la fonction copy()

++
KOogar

Commentaire de fabrice88 le 21/12/2007 09:58:42

euhhh non car j'utilise zenphoto. les photos sont classé comme ça.

Commentaire de defrancesco le 29/01/2008 08:10:42

Bonjour,
J'ai installé ce petit script il y a quelques mois et j'en suis content (voire post plus haut).
Malheureusement, je viens de m'aprecevoir d'un petit bug?
Suite à l'installation, tout marche, mais après quelques jours la photo n'apparaît plus? J'ai un petit carré avec une croix rouge à la place?
Je retélécharge : info_image.txt et cela remache, mais jamais le même nombre de jours
1 jour, 2 jours, ... 2 semaines? Je suis obligé de controler chaque matin mon site?
Quelqu'un a-t-il la solution?
Merci d'avance!
daddy

Commentaire de LaurentKOogar le 29/01/2008 08:39:18

tout marchait très bien au début puis ca a commencé a merdouiller!! c'est ca ??, c'est a cause des crawlers qui viennent de plus en plus sur le site et qui ping la page en l'executant a moitié, alors je vais modifier le code, c'est rien à faire, juste avec le REFERER

si (REFERER == tonsite) {action}
else {inaction}

je fais ca dans la semaine ;)

Commentaire de LaurentKOogar le 29/01/2008 09:04:53

en fait je re, ca prend 2 secondes a faire, les tests vont etre un peu plus long. tu peux changer le code et me dire si c'est debugger ? Le l'ai mis sur un de mes sites aussi... si c'est bon, je ferais la modification du source.

++

remplace

  $f = fopen($fichier_text, "w");
fwrite($f,date("d/m"));
fwrite($f,"\n");
fwrite($f,$imgs[$nbr]);
fclose($f);

par

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

Commentaire de defrancesco le 29/01/2008 09:24:24

Merci d'avoir répondu aussi vite.
Je vais essayer et je te tiens au courant.
daddy

Commentaire de defrancesco le 29/01/2008 10:08:59

Hélas, cela ne marche pas, c'est même pire. J'ai remis l'ancien code.

En effet, avec ce nouveau code, l'image ne reste pas la journée, elle change chaque fois que l'on rentre sur le site?
Cela entraîne que mon image disparaît dans la journée.

Commentaire de LaurentKOogar le 29/01/2008 10:27:34

taratata, il n'y a aucune raison pour que cela ne marche plus. Qu'a tu fais exactement car chez moi ca marche tres bien ? Tu as vider le fichier .txt et relancer la page ?

Commentaire de defrancesco le 29/01/2008 11:00:10

OK ! désolé, j'ai dû faire un mauvais copié/collé!
Il n'y a plus qu'à observer sur la durée.
Merci en tout cas pour l'aide.
daddy

Commentaire de Isnogoud le 17/02/2008 12:29:11

Salut et merci pour ce script.

Petite question, a chaque fois que je fais un refresh de ma page, l'image doit bien changer ???
Car moi j'ai la même image...

Commentaire de elicoladon le 18/02/2008 20:29:31

Isnogoud, quelque chose t'a échappé je crois... :)

LaurentKoogar, j'ai un souci, j'ai fait la modif que tu conseillais à Defrancesco, mais ça ne marche pas "bien".
J'explique.
D'abord l'image change quand j'actualise la page, et en plus, une fois sur quatre à peu près, j'ai la croix rouge...
Que se passe-t-il à ton avis ?

Voici le code que j'ai :

<?php
$nomRepertoire = "image";  // sans le /
$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 fichier
  $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 SRC="',$nomRepertoire,'/',$image,'" BORDER = "0" /><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(0, ($i-1));
//
//  chmod ($fichier_text, 0777);
  $referer = $_SERVER["HTTP_REFERER"];
$host = $_SERVER["HTTP_HOST"];
$rel = strstr($referer,$host);
if($rel != FALSE) {
  $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 SRC="',$nomRepertoire,'/',$imgs[$nbr],'" BORDER = "0" /><br />';
}
?>

Commentaire de defrancesco le 19/02/2008 07:14:29

Isnogoud, ce script doit permettre d'afficher une image différente chaque jour. En fait, tu as la même image durant 24 heures et à minuit l'image change.
Comme j'ai compris, tu aimerais une image aléatoire chaque fois que tu rentres sur ton site! Il y a plein de scripts pour cela.
Exemple:
<?php
/*
+----------------+
| Configuration |
+----------------+
*/

$imgpath = "photos_accueil"; // chemins des images
$textalter = "image aleatoire"; // texte alternative de l'image (attribut alt)

/*
+--------------+
| Programme |
+--------------+
*/

$nodir = 0;
if ($imgpath == ".." || $imgpath == "." || $imgpath == "")
{
        $nodir = 1;
        $imgpath = ".";
}

$j = strlen($imgpath);
$j--;
if ($imgpath[$j] != '/' && $imgpath != ".")
        $imgpath .= '/';

if (is_dir($imgpath))
{

        if ($condir = opendir($imgpath))
        {
                $i = 0;
                while (($curfile = readdir($condir)) != false)
                {
                        $extension = "";
                        $extension = preg_replace("/.+\.(.{3,4})/", "$1", $curfile);
                        if ($extension == "png" || $extension == "gif" || $extension == "bmp" || $extension == "jpg" || $extension == "jpeg")
                        {
                                $i++;
                                $images{$i} = $curfile;
                        }
                }

                if ($images{1} == "")
                {
                        echo "Aucunes images dans le dossier !";
                }
                else
                {
                        $i = rand(1, $i);
                        $image = $images{$i};
                        echo "<img src=\"";
                        if ($nodir != 1)
                                echo $imgpath;
                        echo "".$image."\" alt=\"".$textalter."\" />";
                }
        }
        else
        {
                echo "Impossible d'ouvrir le dossier d'image !";
        }
}
else
{
        echo "Le r&eacute;pertoire d'images sp&eacute;cifi&eacute; est incorrect !";
}

?>

Pour finir je suis comme Elicoladon, le script de ce post ne fonctionne toujours pas chez moi?

Commentaire de Isnogoud le 20/02/2008 00:16:53 8/10

Ok merci

Hier j'ai un peu prêt compris comment le script marchait... et supprimer les lignes qui lisait le fichier_txt et j'ai une nouvelle images à chaque refresh maintenant ;-p

Commentaire de abouABC le 24/12/2008 16:29:19

c'est possible de mettre un timer() pour que l'image soit choisit aléatoirement toute les 10 seconde ?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales