Dossier d'images aléatoire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Dossier d'images aléatoire

Re: Dossier d'images aléatoire

par Dinky » 27 avr. 2012, 19:20

Merci pour vos réponses. Je vais tester tout cela demain et je vous redirais où j'en suis.

Sinon, je cherche un BON bouquin PHP, mais vraiment le livre clair et précis qui reprend PHP à zéro. Un truc pour m'installer dans mon canapé quelques heures à l'ancienne, avec mon papier et mon crayon et avancer un peu pour y voir plus clair.

Merci encore !

Re: Dossier d'images aléatoire

par Mazarini » 27 avr. 2012, 13:13

Dans le premier script, tu lis les images, mais tu n'en affiches aucune d'ou la page blanche. Ajoute l'affichage de la première image pour commencer, après tu pourras passer à une image au hasard.

Dans le second script, il est supposé que tes images s'appelle 0.jpg, 1.jpg... Est ce que c'est le cas ?
D'ailleurs, il faudrait plutot faire mt_rand(0,$max) parce qu'il me semble que c'est toujours 8 dans ton cas.

Re: Dossier d'images aléatoire

par Spols » 27 avr. 2012, 11:39

Le mieux est de mettre des echo (ou print_r ou var_dump pour les tableaux) afin de vérifier le contenu de tes variables.

Ensuite tu dois "mélanger" ton tableaux, utilise la fonction shuffle elle est prévu pour cela.

Tu peux ensuite parcourir ton tableaux avec une boucle foreach et pour chaque image générer le code html avec une balise img

Tu devras prendre en compte le chemin vers tes photos et t'assurer qu'il soit bon.

Au passage, ton premier code me semble tout à fait juste, mais définir ton index i ne sert à rien dans ce cas ci. Dans ta boucle tu assigne les valeurs de ton tableaux par
$tableaux[$i] = valeur
et tu ajoute un increment à $i ($i++;)
la syntaxe suivante permet de faire les deux en même temps
$tableaux[] = valeur
et en plus cette syntax ne demande pas d'instancier la variable $i.

Dossier d'images aléatoire

par Dinky » 27 avr. 2012, 10:19

Bonjour

Je suis débutant en php. J'essaie petit a petit d'en comprendre le sens. Je voudrais à partir d'un script afficher toutes les images d'un répertoire de manière aléatoire.
Mon dossier /photos contient des photos.

J'ai mis ce que je pensais juste, mais j'arrive a ne plus avoir d'erreurs, juste une page blanche. Pas pratique pour me guider du coup :(

Voici la copie de mon fichier.

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> </head> <body> <?php // On stock le répertoire dans une variable // on l'utilisera de nouveau par la suite dans le code $dir = "./photos/"; // On ouvre le répertoire pour se préparer // à le lire $opened_dir = opendir($dir); // On vérifie que l'ouverture du répertoire à bien // fonctionnée, sinon on arrête là.... if(!$opened_dir) die('Erreur'); // On créé un tableau destinné à contenir la // liste des images disponibles $image_list = array(); // On créé une variable $i pour parcourir le tableau // ainsi créé $i = 0; // On boucle tant que l'on peut y lire queque chose while ( ($file = readdir($opened_dir)) !== FALSE ) { // On contrôle que nous sommes bien en présence d'un // fichier et non pas d'un répertoire if( is_file($dir.$file) ) { // On stock l'image dans le tableau d'image $image_list[$i] = $file; // On incrémente la variable de parcourt de 1 // pour ne pas écraser l'enregistrement avec // le suivant $i++; } } // Et on finit par fermer le répertoire ouvert closedir($opened_dir); ?> </body> </html>
Merci de m'éclairer que je comprenne un peu ce qui ne va pas.

Au passage si vous avez un script de ce type qui fonctionne, je suis preneur ! C'est le 3e que j'essaie sans succès

EDIT :

Je viens aussi d'esayer ce bout de code à la place. Ca me sort 1 image mais brisée (la petite icone grise qui montre que le lien d'image est brisé)

Code : Tout sélectionner

<?php $max = 8; //nombre d'images totale dans ton répertoire. $i = mt_rand(8, $max); //on sélectionne au pif $ext = 'jpg'; //extension de tes images. $images = 'photos'; //répertoires des images echo '<img src="'.$images.'/'.$i.'.'.$ext.'">'; // tpl->assign('images', '<img src="images/',$a,'',$i,'.',$ext,''); Si tu passe via moteur tpl ?>
Pfffff trop dur quand on est débutant