Se connecter avec
S'enregistrer | Connectez-vous
Votre question

[PHP] Compter nombre fichiers dans dossier

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
Partagez
25 Juin 2006 16:25:47

Bonjour, ben c'est assez simple, mais je trouve pas:

J'ai un dossier : img/

et je voudrais compter combien il y a de fichiers à l'intérrieur!

en php pour faire ensuite : echo "Il y a".$nbr_fichiers." dans le dossier image";

merci d'avance

Autres pages sur : php compter nombre fichiers dossier

22 Mai 2007 15:50:45

j'ai la meme chose a faire sur mon site et je galere pareil
as tu trouvé la solution depuis ???
si oui peux tu me donner un peu d'aide ?

merci d'avance
22 Mai 2007 16:04:13

glob
Contenus similaires
22 Mai 2007 16:16:48

J'ai enfin fini par trouver quelquechose ...

Cette fonction retourne le nombre de fichiers situés dans le répertoire spécifié $dir.
Elle ne prend pas en compte les sous-répertoires.

Exemple d'utilisation :
// Assigne à la variable $num_images le nombre de fichiers contenus dans le répertoire "site/images"
$num_images = count_files("site/images");

  1. <?
  2. function count_files($dir)
  3. {
  4. $num = 0;
  5.  
  6. $dir_handle = opendir($dir);
  7. while($entry = readdir($dir_handle))
  8. if(is_file($dir.'/'.$entry))
  9. $num++;
  10. closedir($dir_handle);
  11.  
  12. return $num;
  13. }
  14. ?>


Vous pouvez spécifier un chemin de répertoire commençant par http://, ftp://,... si vous avez les droits nécessaires à la lecture des répertoires situés à distance.

voila ce que j'ai trouvé sur : http://www.phpcs.com/codes/NOMBRE-FICHIERS-DANS-REPERTO...


Sauf que maintenant je cherche les astuces pour que ca fonctionne !!! Pas évident de trouver la signification de tout ce code...

A+
22 Mai 2007 16:21:15

okinou a dit :
glob



pourquoi glob ??? :o 
22 Mai 2007 17:06:04

cherche et tu trouveras.
22 Mai 2007 17:41:03

J'ai essayé ton code et il m'affiche ca ...
Warning: implode() [function.implode]: Bad arguments. in /mnt/.../.../././.../.../.../... on line 4

Warning: implode() [function.implode]: Bad arguments. in /mnt/.../.../././.../.../.../... on line 7
22 Mai 2007 19:38:04

J'ai trouvé un tout nouveau code et celui fonctionne impécable
plus de probleme et je voulais en faire profiter tout le monde ..... :pt1cable:  :pt1cable:  :pt1cable:  :pt1cable:  :pt1cable: 

  1. <?
  2. $dossiers = array("Images","Images"); // c'est la seule ligne qu'il faut mofidier !!!!!!!!
  3.  
  4. // Tu mets ton/tes dossiers qui contiennent tes images dans un array.
  5. // Il faut 2 dossiers au minimum ou bien si il n'en existe qu'un seul, mettez 2 fois le même
  6.  
  7. $nbdossiers = count($dossiers); // Tu recuperes le nombre de dossiers
  8. $randdossier = rand(0,($nbdossiers-1)); // tu fais un random de 0 à ton nombre de dossiers
  9. $rdossier = $dossiers[$randdossier]; // Tu selectionnes un dossier au hasard
  10. $rep = $rdossier."/";
  11. $listfile = array(); // Tu crée un array vide pour y mettre tous les fichiers
  12.  
  13. $dir = opendir($rep); // Tu ouvres ton dossier
  14. while ($f = readdir($dir)) // Tu fais une boucle des fichiers de ton dossier
  15. {
  16. if(is_file($rep.$f) && $f != '.' && $f != '..') // Si le fichier existe
  17. {
  18. $ext = substr($rep.$f,-3); // Recuperation de l'extension du fichier
  19. if($ext == 'jpg' || $ext == 'JPG' || $ext == 'png' || $ext == 'PNG' || $ext == 'gif' || $ext == 'GIF' || $ext == 'bmp' || $ext == 'BMP')
  20. // C'est bien une image
  21. {
  22. $listfile[] = $f; // Ajout du fichier dans l'array
  23. }
  24. }
  25. }
  26. closedir($dir); // Tu fermes le dossier
  27. $nbfichier = count($listfile); // Tu comptes le nombre de fichiers
  28. $randfichier = rand(0,($nbfichier-1)); // Tu fais un random de 0 à ton nombre de fichier
  29. $rfichier = $listfile[$randfichier]; // Tu selectionnes un fichier au hasard
  30. echo 'Voici l\'image aléatoire donnée :
  31. <p> <div align="center"><img src="'. $rep.$rfichier .'" / height=600px width=600px></div>'; // modifié height et width à volonté...
  32. ?>


:hello:  au revoir :D 
22 Mai 2007 20:09:59

avec 2 ligne de code :

glob + count

tu obtient le nombre de fichier dans le répertoire mais bon si tu veux te cassé les couilles à ne pas écouter ...
23 Mai 2007 01:00:53

ok merci c'est sympa ! j'ai essayé ca marche bien mais je voulais l'améliorer et j'ai trouvé

merci beaucoup :hello:  :D 
23 Mai 2007 09:28:12

pourquoi faire simple quand on peut faire compliqué ...
merlin, as tu regardé au moins le lien de okinou : pointu, précis, affuté, sharp ...
14 Mai 2009 15:47:45

  1. function CountImgPath($path)
  2. {
  3. /*
  4. Compte les images JPG PNG GIF dans les répertoires
  5. Sauf celle du dossier miniature (/thumbs) si il est dans le même répertoire.
  6. Si vos miniatures sont dans le même dossier vous avez 1 solutions:
  7. diviser le résultat
  8. structure:
  9. Dossier_maitre:
  10. |_dossier1:
  11. |_image1.jpg
  12. |_image2.gif
  13. |_image3.png
  14. |_dossier2:
  15. |_image1.jpg
  16. |_image2.gif
  17. |_image3.png
  18. |_dossier3:
  19. |_image1.jpg
  20. |_image2.gif
  21. |_image3.png
  22. |_dossier4:
  23. |_image1.jpg
  24. |_image2.gif
  25. |_image3.png
  26. TOTAL: 12
  27. Peut servir également pour afficher les dossier ou les images.
  28. */
  29. $count=0;
  30. $compteur = count(glob($path."/{*.gif,*.jpg,*.png}", GLOB_BRACE));
  31. $count = $compteur + $count;
  32. //echo $path.' - '.$compteur.'<br/>'; //affiche le dossier
  33. //compte les images dans les dossier recursif
  34. if ($path[strlen($path)-1] != "/")$path .= "/";
  35. if (is_dir($path))
  36. {
  37. $d = opendir($path);
  38. $iCpt1 = substr_count ($path,'/thumbs' ); //sauf dans ce dossier.
  39. if($iCpt1==0)
  40. {
  41. while ($f = readdir($d))
  42. {
  43. if ($f != "." && $f != "..")
  44. {
  45. $rf = $path . $f; // chemin relatif au fichier php
  46. $iCpt2 = substr_count ($rf,'/thumbs' );
  47. if (is_dir($rf)and($iCpt2==0))
  48. {
  49. $compteur = count(glob($rf."/{*.gif,*.jpg,*.png}", GLOB_BRACE));
  50. $count = $compteur + $count;
  51. //echo $rf.' - '.$compteur.'<br/>'; //affiche le dossier
  52. }
  53. }
  54. }
  55. }
  56. closedir($d);
  57. }
  58. return $count;
  59. }
6 Octobre 2011 11:55:56

Comme j'oublie souvent les solutions, je fais souvent les mêmes recherches.
A force de tomber sur ce topic, ben je l'inscris ici !

sizeof(glob("images/*.jpg" ) );
merci okinou
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS