Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 036 fois - Téléchargée 30 fois
<?php $nb_T = 0; $opdir = opendir("./img/"); while ($T = readdir($opdir)) { if (!is_dir($T)) $nb_T++; } closedir($opdir); ?> <script language='javascript'> function alleatoire() { // le nombre suivant correspond au nombre d'images total répertorier dans le répertoire var nombre_images = <?=$nb_T?>; // on demande un nombre alleatoire a l'ordinateur var nombre_alleatoire = Math.random(); var numero = Math.round( ( nombre_images - 1 ) * nombre_alleatoire ) + 1; images = new Array; <?php function trouverExt ($fichier) { // coupe le nom du fichier $tableau = explode(".",$fichier); // retourne les caractere apres le dernier . return $tableau[count($tableau)-1]; } // open directory $myDirectory = dir("./img/"); $nb_T = 1; // get each entry while($entryName = $myDirectory->read()) { if($entryName != '.') { if($entryName != '..') { if($entryName != 'thumbs.db') { if (!is_dir($entryName)) { $extention = trouverExt($entryName); if($extention = 'gif' or $extention = 'jpg' or $extention = 'bmp' or $extention = 'png'){ { print("images[$nb_T] = '$entryName';"); $nb_T++; } } } } } } } // close directory $myDirectory->close(); ?> var image = images[numero]; document.write("<img src='./img/" + image + "'>"); } alleatoire(); </script>
4 mars 2010 à 13:04
Le script ne m'affiche aucune erreur, il y a juste rien qui se passe xD
L'erreur vient d'ou ? j'ai re re re regardé aux chemins de mes images et c'est bon théoriquement.
12 juil. 2005 à 12:38
Moi j'utilise un script du genre pour faire alterner des images, il est aussi simple que ça :
$y=0 ;
$handle = dir("./images/headers/");
while ($file = $handle->read()) {
if (($file != ".") && ($file != "..") && (strpos($file, ".jpg")!=false)) {
$y = $y+1 ;
$imag[$y] = $file ;
}
}
$handle->close();
$numb = rand(1,$y) ;
Et l'appel de l'url de l'image se fait de cette manière :
'./images/headers/'.$imag[$numb]
Ce n'est pas le script parfait, loin de là, incrémentations douteuses, vérifications mineures, mais il a le mérite d'être un peu moins compliqué ... Un peu.
11 juil. 2005 à 16:41
#
# $nb_T = 0;
#
# $opdir = opendir("./img/");
# while ($T = readdir($opdir))
# {
# if (!is_dir($T)) $nb_T++;
# }
#
# closedir($opdir);
#
#
# ?>
$nb_T te donne le nombre de fichier qui ne sont pas des repertoires, et tes fichiers qui ne sont pas des images seront pris en compte ( genre .htaccess, index.html, titi.php, ...)
ta verif est fausse au niveau du test sur les extensions:
if($extention 'gif' or $extention 'jpg' or $extention = 'bmp' or $extention = 'png')
or ca marcherai mieux avec des tu ouvres 2 fois ton dossier ( avec 2 parcours du contenu> mauvais algorithme) alors que tu aurais pu le faire qu'une fois ( en plus tu utilises 2 méthodes de parcours, ca au moins le mérite de montrer que ca existe)
Pour stroubinou, ce code est inutile, il suffit de rechercher les extensions qu'ils l'interessent et de faire ces opérations.
# if($entryName != '.')
# {
# if($entryName != '..')
# {
# if($entryName != 'thumbs.db')
# {
# if (!is_dir($entryName))
# {
Je ne parlerai pas ici du probleme de l'utilisation de l'extension ( car ce n'est pas de l'upload, mais le coeur y est , oups, c'est fait ;) )
11 juil. 2005 à 14:39
Pourquoi
# if($entryName != '.')
# {
# if($entryName != '..')
# {
# if($entryName != 'thumbs.db')
# {
# if (!is_dir($entryName))
# {
Ca ne serait pas plus simple d'utiliser une seule condition, avec des and ?
Autre chose, ca n'aurait pas été plus simple de tout faire en php? parce que il y a quand meme des utilisateurs qui n'autorisent pas le javascript.
+++
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.