cccp Posté 18 Juillet 2005 Posté 18 Juillet 2005 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. 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 auxcritè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épertoirewhile($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épertoiresrand((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?>
sgaiotti Posté 18 Juillet 2005 Posté 18 Juillet 2005 (modifié) 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é 18 Juillet 2005 par sgaiotti
cccp Posté 18 Juillet 2005 Auteur Posté 18 Juillet 2005 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 auxcritè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épertoirewhile($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épertoiresrand((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
cccp Posté 18 Juillet 2005 Auteur Posté 18 Juillet 2005 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant