script pour afficher une image aléatoirement !

script pour afficher une image aléatoirement ! - PHP - Programmation

Marsh Posté le 24-03-2004 à 17:14:01    

Bonjour je souhaite faire un script pour afficher une images aléatoirement :
 

Code :
  1. <?php
  2. print getRandomImage('../images/');
  3. function getRandomImage($dir,$type='random')
  4. {
  5. global $errors,$seed;
  6.   if (is_dir($dir)) { 
  7.   $fd = opendir($dir); 
  8.   $images = array();
  9.       while (($part = @readdir($fd)) == true) { 
  10.           if ( eregi("(gif|jpg|png|jpeg)$",$part) ) {
  11.               $images[] = $part;
  12.           }
  13.       }
  14.     // adding this in case you want to return the image array
  15.     if ($type == 'all') return $images;
  16.     if ($seed !== true) {
  17.       mt_srand ((double) microtime() * 1000000);
  18.       $seed = true;
  19.     }
  20.      
  21.       $key = mt_rand (0,sizeof($images)-1);
  22.     return $dir . $images[$key];
  23.   } else {
  24.       $errors[] = $dir.' is not a directory';
  25.       return false;
  26.   }
  27. }
  28. $image = getRandomImage('images/');
  29. echo "<img src='$image' alt='A random image'>";
  30. ?>


 
voici le script dans un fichier script.php3 (par exemple)
 
et ici un fichier ou je veux afficher aléatoirement les images du répertoire :
 

Code :
  1. <html>
  2. <head>
  3. <title>test</title>
  4. </head>
  5. </body>
  6. Affiche moi l'image STP :) <img src = "script.php">
  7. </body>
  8. </html>


 
Mais ca ne fonctionne pas est-ce que qqn a une solution à mon problème ?
 
Merci

Reply

Marsh Posté le 24-03-2004 à 17:14:01   

Reply

Marsh Posté le 24-03-2004 à 17:20:50    

Ben, simple supposition sans examen poussé du script :
 
Ton premier script fait un echo d'une balise image, pas de l'image elle même :)
 
(et j'ai un petit doute sur l'utilisation de script.php dans le deuxième script, je l'ai jamais essayer comme ça, mais je doute que ça fonctionne)

Reply

Marsh Posté le 24-03-2004 à 17:33:25    

hmmm  
En fait le fichier script.php fonctionne puisque lorsque j'affiche la page script.php l'image s'affiche. Mais je voudrais appeller le script à partir d'une autre page.
 
Sinon comment faire, tout en gardant le même principe c'est a dire un appel vers une fonction qui affiche une image.
 
merci

Reply

Marsh Posté le 24-03-2004 à 17:40:05    

Bon j'ai réessayé en mettant :
 
<?php include ( 'script.php' ); ?>
 
à l'endroit ou je veux afficher l'image et ca fonctionne.
 
Mais ca me gene un peu.... d'avoir du php dans cette page... Est-ce qu'il n'y pas un autre moyen d'afficher mes images ...en utilisant du HTML pur <img src = script.php>
 
merci

Reply

Marsh Posté le 24-03-2004 à 17:46:17    

Sans modifier script.php

Code :
  1. <html>
  2.   <head>
  3.   <title>test</title>
  4.   </head>
  5.   </body>
  6.   Affiche moi l'image STP :) <?php include('script.php'); ?>
  7.   </body>
  8.   </html>


 
Ou encore mieux (avec modif), tu crées une fonction qui retourne l'url de l'image :

Code :
  1. //script.php
  2. <?php
  3. ...
  4. function RandomImage(){
  5. $image = getRandomImage('images/');
  6. return "<img src='$image' alt='A random image'>";
  7. }
  8. ...
  9. ?>


et dans l'autre

Code :
  1. <?php include_once('script.php'); ?>
  2. <html>
  3.   <head>
  4.   <title>test</title>
  5.   </head>
  6.   </body>
  7.   Affiche moi l'image STP :) <?= RandomImage(); ?>
  8.   </body>
  9.   </html>


 
si j'ai pas fais d'erreur en route :D

Reply

Marsh Posté le 24-03-2004 à 17:48:59    

peemousse a écrit :

Bon j'ai réessayé en mettant :
 
<?php include ( 'script.php' ); ?>
 
à l'endroit ou je veux afficher l'image et ca fonctionne.
 
Mais ca me gene un peu.... d'avoir du php dans cette page... Est-ce qu'il n'y pas un autre moyen d'afficher mes images ...en utilisant du HTML pur <img src = script.php>
 
merci


 
Oui, c'est possible, mais là on entre dans le un peu compliqué pour pas grand chose : header et content-type, lecture de fichier et buffer d'affichage...T'es sûr que ça te gêne ? :D

Reply

Marsh Posté le 24-03-2004 à 18:05:25    

Non c'est bon en fait c'est NIKELLLLLLLL  :D
 
Merci beaucoup de ton aide en tout cas :D


Message édité par peemousse le 24-03-2004 à 18:05:42
Reply

Marsh Posté le 24-03-2004 à 18:37:18    

Je reviens à la charge .... :)
Si on va sur le site www.madchat.org , il y a des images qui s'affichent aléatoirement dans le coin gauche. (ne pas hésiter à faire des refresh ou a fermer pour reouvir le navigateur pour voir les changements).
En regardant de plus près le source de la page on voit ceci :
 
<img src=/.logos/logo.php3>
 
Donc lorsque l'on va ici http://www.madchat.org/.logos/  il y a le script et les images que l'on peut affciher....


Message édité par peemousse le 24-03-2004 à 18:37:41
Reply

Marsh Posté le 24-03-2004 à 18:48:20    

Exécute le script logo.php3, tu verras qu'il renvoie une image .gif , ils utilisent la méthode "un peu compliqué" citée plus haut (que perso je trouve plus adéquate pour des images générées dynamiquement, mais bon...)

Reply

Marsh Posté le 24-03-2004 à 19:04:25    

ok chef :)  
 
thx

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed