Aller au contenu

Afficher le nombre des image d'un repertoire


Sujets conseillés

Posté (modifié)

Bonjour les gars!

Y a t'il un script pour pouvoir afficher en texte le nombre des fichier .jpg ou .gif (=des images) d'un repertoire?

Example:

Dans ce repertoire il y a : 12 photos

Merci d'avance!

Modifié par cccp
Posté

???

Alors soit j'ai mal compris ta requète, soit t'as mal regardé là où je t'ai dit :

La fonction scandir te renvoie la liste des fichiers d'un répertoire : il te suffit de compter ceux dont le nom se termine par .jpg ou .gif (ou .png). C'est simple.

Posté

Salut encore. :P

Ca doit être que toi tu m'a mal compris.

J'explique :

J'ai une page PHP ou j'envie d'afficher le nombre (exp. 1 ou 2ou 34...) et ce nombre correspond à le nombre des images que j'ai dans un repetoire, mais QUE des IMAGES.

Voilà.

;)

Posté

Et bien ce que je t'ai dit fonctionne :

1) Tu utilises la fonction scandir qui te renverra les noms de TOUS les fichiers du répertoire dans un tableau

2) Tu crées un compteur que tu initialises à 0

3) Tu parcoures ce tableau, et à chaque fois que tu tombes sur un fichier dont le nom se termine en .jpg, .gif ou .png, tu ajoutes 1 à ton compteur

4) Tu affiches la valeur de ton compteur

Posté

Salut... N'essaye pas de faire quelque chose en javascript ou asp ou quoi que ce soit, c'est bien avec PHP que tu le feras... :/

$dh = opendir("dossier_images");
while (($file = readdir($dh)) !== false)
{
   $photos[] = $file;
}

foreach ($photos AS $nomphoto)
{
if (ereg('jpg', substr("$nomphoto", -3)) OR ereg('gif', substr("$nomphoto", -3)))
{
$nombre_photos++;
}
}

Voilà c'est une idée, que tu peux améliorer facilement... En tout cas c'est en allant dans cette voie que tu pourras faire ton truc !

Posté

:blink:

Bon, d'accord. Mais tu vera vite que je suis NUL. :fete:

<?php
$dir = "/images/galeries/";
$gcc_file = "counter.txt";

if(!file_exists("$gcc_file"))
{
$gcc_fp=fopen("$gcc_file","a");
fputs($gcc_fp,"0");
fclose($gcc_fp);
}

$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
   $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);
?>

:wub:

  • 10 months later...
Posté (modifié)

bonjour,

j'ai repris votre discution car je cherche à afficher le nombre d'images d'un repertoire et en mettant le code :

<?php
$dh = opendir("xxx/xxx");
while (($file = readdir($dh)) !== false)
{
$photos[] = $file;
}

foreach ($photos AS $nomphoto)
{
if (ereg('jpg', substr("$nomphoto", -3)) OR ereg('gif', substr("$nomphoto", -3)))
{
$nombre_photos++;
echo $nombre_photos;
}
}

?>

j'obtiens 123 alors que le resultat devrait etre 3 et 12345 quand le resultats doit etre 5 comment puis je afficher le bon resultat?

Modifié par vero
Posté

Tout bêtement en déplaçant la ligne echo $nombre_photos; derrière l'accolade qui la suit actuellement.

C'est très simple : ton code effectue une boucle, et chaque boucle est une photo. À chaque boucle, le nombre total de photos augmente donc. Or ton "echo $nombre_photos;"est inséré dans le code de la boucle... ce qui fait que chaque fois qu'une boucle sera effectuée, la ligne sera executée et donc le nombre affiché. En mettant la ligne hors de la boucle, tu attends que toutes les photos aient été comptées avant d'en afficher le compte.

Loupilo.

Posté

Bonsoir,

en utilisant la fonction glob() :

// On récupère dans un tableau les différents fichiers images, il suffit donc de lister les extensions possibles
$strPath = 'xxx/xxx/';
$arrFiles = glob("$strPath{*.jpeg,*.jpg,*.gif,*.png}", GLOB_BRACE);

// On affiche le résultat
echo 'Il y a ' . sizeof($arrFiles) . ' image(s).';

++

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...