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
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]<!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>[/code]
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]<?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
?>[/code]
Pfffff trop dur quand on est débutant