random image from folder every "x" seconds
Posté : 25 janv. 2015, 19:29
Bonjour tout le monde,
Je souhaite créer un diaporama aléatoire puisant dans un dossier d'une centaine d'images.
J'ai d'abord trouvé un morceau de PHP qui permet l'affichage d'une image aléatoire au chargement de la page.
Pour créer le diaporama, j'ai ajouté un script qui "recharge" la balise image toutes les x secondes. Ça fonctionne 5 secondes, après ça devient complètement incontrôlable et ça finit par planter le navigateur !
<script type="text/javascript">
var auto_refresh = setInterval(
function (e)
{
$('#image1').load('index.php').fadeIn();
}, 5000);
$(document).ready(setTimer);
</script>
[/javascript]
Si quelqu'un a une petite idée ce serait super sympa !
Merci
Je souhaite créer un diaporama aléatoire puisant dans un dossier d'une centaine d'images.
J'ai d'abord trouvé un morceau de PHP qui permet l'affichage d'une image aléatoire au chargement de la page.
Pour créer le diaporama, j'ai ajouté un script qui "recharge" la balise image toutes les x secondes. Ça fonctionne 5 secondes, après ça devient complètement incontrôlable et ça finit par planter le navigateur !
<?php
$root = '';
// use if specifying path from root
//$root = $_SERVER['DOCUMENT_ROOT'];
$path = 'image/';
function getImagesFromDir($path) {
$images = array();
if ( $img_dir = @opendir($path) ) {
while ( false !== ($img_file = readdir($img_dir)) ) {
// checks for gif, jpg, png
if ( preg_match("/(\.gif|\.jpg|\.png)$/", $img_file) ) {
$images[] = $img_file;
}
}
closedir($img_dir);
}
return $images;
}
function getRandomFromArray($ar) {
mt_srand( (double)microtime() * 10 ); // php 4.2+ not needed
$num = array_rand($ar);
return $ar[$num];
}
// Obtain list of images from directory
$imgList = getImagesFromDir($root . $path);
$img = getRandomFromArray($imgList);
for($i=0;$i<2;$i++) {
$img = getRandomFromArray($imgList);
echo '<img src="'.$path.$img.'" />';
unset($imgList[$img]);
}
?>
[javascript]<script type="text/javascript">
var auto_refresh = setInterval(
function (e)
{
$('#image1').load('index.php').fadeIn();
}, 5000);
$(document).ready(setTimer);
</script>
[/javascript]
<div class="img" id="image1"> <img src="<?php echo $path . $img ?>" alt="" /> </div>
Je n'y connais pas grand chose mais je me rends bien compte que le jquery ne va pas du tout. C'est la seule chose que j'ai trouvé jusqu'à maintenant !Si quelqu'un a une petite idée ce serait super sympa !
Merci