Aller au contenu

Afficher des images d'un répertoire


cccp

Sujets conseillés

Bonjour,

j'ai trouvais un script et j'aimerrai le modifier un peut avec votre aide, SVP.

Comme ce script permet d'afficher une image prise de manière aléatoire dans un

répertoire, mais moi j'ai des fichiers .php dans le même répertoire et j'envie q'il prend en compte que des fichiers images.

Merci pour votre aide. :rolleyes:

A+

<?php

// ------------------------------------------------------------------------- //
// Afficher une image aléatoire                                              //
// ------------------------------------------------------------------------- //
// Auteur: Gap <gap_AT_melo.com>                                                //
// Web:    http://www.scout.ch/gsfa                                          //
// ------------------------------------------------------------------------- //

/*
Ce script permet d'afficher une image prise de manière aléatoire dans un
répertoire.

Il ouvre le répertoire et compte le nombre de fichiers images correspondants aux
critères (type d'image, hauteur, largeur). Une de ces images est ensuite affichée.
Le répertoire peut contenir toutes sortes d'autres fichiers, seules les images
correspondantes seront prises en compte.
*/

$rep = "galeries/galerie_sajkaca/";     // Répertoire contenant les images

$filter[type] = 1;2;6;    // Format d'image. 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD,
                     //                 6 = BMP
$filter[height] = 1000; // Hauteur de l'image en pixels
$filter[width] = 1000; // Largeur de l'image en pixels

$i = 0; // Initialisation du compteur
$d = dir("$rep"); // Ouverture du répertoire

while($file=$d->read())
{
   // Empèche de prendre les entrées . et .. du répertoire
   if ($file != "." && $file != "..")
   {

       {
           // Remplissage du tableau des noms de fichier des images
           $table[$i] = $file;
           $i++; // Incrémentation du compteur d'images
       }
   }
}
$d->close(); // Fermeture du répertoire
srand((double)microtime()*1000000);

// Définition d'un nombre aléatoire dans la fourchette du nombre d'images
$nbr=rand(0,($i-1));

// Définition d'une variable contenant le chemin d'acces relatif à l'image  
// choisie par le nombre aléatoire dans le tableau
$display = $rep.$table[$nbr];
$info = getimagesize($display);

echo '<a href="galeries/galerie_3/"><img src="'.$display.'" border="0" '.$info[3].'></a>'; // Affichage de l'image

?>

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Ce qui est bizard, c'est que ton tableau $filter n'est pas utilisé dans la suite du script car c'est lui qui permet de ne prendre que les images et pas tes fichiers php

Voici un code qui le fait tres bien

# // Dossier des fonds depuis l'emplacement du script, sans / à la fin !
# $dossier= " Adresse-dossier dans lequel est mis les petits images";
# $gdossier= " Adresse-dossier dans lequel est mis les grands images ";
# $host = " Adresse-dossier dans lequel est mis le script, sans / à la fin !";
# // Extension des aperçus
# $extapp = "jpg";
#  
# // ----------------------
# // LISTAGE DES FONDS
# $dossier_open = opendir("$dossier");
# while ($fichier = readdir($dossier_open))
# {
# if (!strstr($fichier) && $fichier!="..")
# {
# $array_fichiers[] = "$fichier";
# $sec_fichier = explode(".", $fichier);
# $array_apercus[] = "$sec_fichier[0].$extapp";
# }
# }
# closedir($dossier_open);
#  
# //---------------------
# $gdossier_open = opendir("$gdossier");
# while ($fichier = readdir($gdossier_open))
# {
# if (!strstr($fichier) && $fichier!="..")
# {
# $array_fichiers[] = "$fichier";
# $sec_fichier = explode(".", $fichier);
# $array_apercus[] = "$sec_fichier[0].$extapp";
# }
# }
# closedir($gdossier_open);
#  
# // -------------------------------
# // CHOIX D'UN FOND
# // -------------------------------
# srand(date("d"));
# $nb = rand(0, count($array_fichiers)-1);
#  
#  
# ?><a href="<? echo "$host/$gdossier/$array_fichiers[$nb]"; ?>"
# target="_blank"><img src="<? echo "$host/$dossier/$array_apercus[$nb]"; ?> " whidth="170" height="115"
#  border="2" alt="Wallpaper du jour">
# </a>
# < ? echo ' <center>copyright daadi 2002 www.coolimages.fr.st'; ?>

Par contre, dans ce script, il s'agit d'une affichage par jour

il te suffit de modifier la variable srand

Il te suffit ensuite de tester que les 3 caracteres de droite sont égale à $extapp au moment du listage des fichiers

Modifié par sgaiotti
Lien vers le commentaire
Partager sur d’autres sites

Salut,

En faite le script complet est comme ça:

<?php

// ------------------------------------------------------------------------- //
// Afficher une image aléatoire                                              //
// ------------------------------------------------------------------------- //
// Auteur: Gap <gap_AT_melo.com>                                                //
// Web:    http://www.scout.ch/gsfa                                          //
// ------------------------------------------------------------------------- //

/*
Ce script permet d'afficher une image prise de manière aléatoire dans un
répertoire.

Il ouvre le répertoire et compte le nombre de fichiers images correspondants aux
critères (type d'image, hauteur, largeur). Une de ces images est ensuite affichée.
Le répertoire peut contenir toutes sortes d'autres fichiers, seules les images
correspondantes seront prises en compte.
*/

$rep = "galeries/galerie_sajkaca/";     // Répertoire contenant les images

$filter[type] = 1;2;6;    // Format d'image. 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD,
                    //                 6 = BMP
$filter[height] = 1000; // Hauteur de l'image en pixels
$filter[width] = 1000; // Largeur de l'image en pixels

$i = 0; // Initialisation du compteur
$d = dir("$rep"); // Ouverture du répertoire

while($file=$d->read())
{
  // Empèche de prendre les entrées . et .. du répertoire
  if ($file != "." && $file != "..")
  {
$info = getimagesize($rep.$file);
       // Filtre les images qui ne correspondent pas aux critères
       if($info[2] == $filter[type] && $info[1] == $filter[height] &&
          $info[0] == $filter[width])
       {

      {
          // Remplissage du tableau des noms de fichier des images
          $table[$i] = $file;
          $i++; // Incrémentation du compteur d'images
      }
  }
}
$d->close(); // Fermeture du répertoire
srand((double)microtime()*1000000);

// Définition d'un nombre aléatoire dans la fourchette du nombre d'images
$nbr=rand(0,($i-1));

// Définition d'une variable contenant le chemin d'acces relatif à l'image  
// choisie par le nombre aléatoire dans le tableau
$display = $rep.$table[$nbr];
$info = getimagesize($display);

echo '<a href="galeries/galerie_3/"><img src="'.$display.'" border="0" '.$info[3].'></a>'; // Affichage de l'image

?>

J'ai juste supprimé ça:

$info = getimagesize($rep.$file);
       // Filtre les images qui ne correspondent pas aux critères
       if($info[2] == $filter[type] && $info[1] == $filter[height] &&
          $info[0] == $filter[width])
       {

Car je sais pas comment faire pour que il affiche les images en sa taille d'origine.

Si tu sais comment m'aider...ça serra simpa.

Merci encore

Lien vers le commentaire
Partager sur d’autres sites

Et encore....

Cela peut être aussi possible: d'afficher les images d'origine en plus petit (sans crée a part des petits images) mais en gardant la hauteur proportionnelle à la largeur.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...