Bonjour tout le monde,
Je suis nouveau ici et en plus de cela, je suis quelque peu noob niveau développement web. Je pense que mon problème est assez simple mais il me manque quelques clés de connaissance en PHP pour trouver une solution de manière autonome.
Je vais essayer de vous exposer mon problème très clairement. Si jamais quelqu'un a une petite solution ou un conseil, ce serait super cool de prendre le temps de me répondre.
Je voudrais afficher 3 images, piochées aléatoirement dans un dossier. À la manière d'un diaporama j'aimerais que les balises <img> se rechargent pour afficher de nouvelles images, et ce à des facteurs temporels différents (toutes les 3 secondes pour l'une, toutes les 8 secondes pour l'autre, etc.)
Il s'agit d'un projet "artistique", pour ceux qui se demandent qui voudrait bien faire un truc pareil.
Alors j'ai trouvé un bout de PHP qui me permet de piocher une image aléatoirement dans un dossier et de l'afficher à chaque chargement de page. Ce à quoi j'ai ajouté un morceau de javascript pour pouvoir recharger ma div contenant l'image, toutes les 3 secondes (sans avoir besoin d'auto-refresh tout l'html)
Du coup, j'y suis presque et je suis super fier de moi, mais je n'ai qu'une image ! Je crois qu'il me manque pas plus de 2 lignes de PHP pour pouvoir charger deux autres images. Vous savez comment faire ?
Je vous met mon code ici:
J'ai ensuite ajouté ça, pour rafraichir ma div toutes les 3 secondes:
Voilà voilà, si quelqu'un a une petite idée
Modifié par vincentddd (12 Jun 2014 - 15:15)
Je suis nouveau ici et en plus de cela, je suis quelque peu noob niveau développement web. Je pense que mon problème est assez simple mais il me manque quelques clés de connaissance en PHP pour trouver une solution de manière autonome.
Je vais essayer de vous exposer mon problème très clairement. Si jamais quelqu'un a une petite solution ou un conseil, ce serait super cool de prendre le temps de me répondre.
Je voudrais afficher 3 images, piochées aléatoirement dans un dossier. À la manière d'un diaporama j'aimerais que les balises <img> se rechargent pour afficher de nouvelles images, et ce à des facteurs temporels différents (toutes les 3 secondes pour l'une, toutes les 8 secondes pour l'autre, etc.)
Il s'agit d'un projet "artistique", pour ceux qui se demandent qui voudrait bien faire un truc pareil.
Alors j'ai trouvé un bout de PHP qui me permet de piocher une image aléatoirement dans un dossier et de l'afficher à chaque chargement de page. Ce à quoi j'ai ajouté un morceau de javascript pour pouvoir recharger ma div contenant l'image, toutes les 3 secondes (sans avoir besoin d'auto-refresh tout l'html)
Du coup, j'y suis presque et je suis super fier de moi, mais je n'ai qu'une image ! Je crois qu'il me manque pas plus de 2 lignes de PHP pour pouvoir charger deux autres images. Vous savez comment faire ?
Je vous met mon code ici:
<?php
$root = '';
// use if specifying path from root
//$root = $_SERVER['DOCUMENT_ROOT'];
$path = 'images/';
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);
?>
J'ai ensuite ajouté ça, pour rafraichir ma div toutes les 3 secondes:
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#image').load('demo2.php').fadeIn("slow");
}, 3000); // rafraichis toutes les 10000 millisecondes
</script>
Voilà voilà, si quelqu'un a une petite idée
Modifié par vincentddd (12 Jun 2014 - 15:15)