Tom's Guide > Forum > Programmation > [PHP] Compter nombre fichiers dans dossier

[PHP] Compter nombre fichiers dans dossier

Forum Programmation : [PHP] Compter nombre fichiers dans dossier

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

Répondre à merlin8

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" );

Code :
  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- [...] 12980.aspx


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

A+


Message édité par merlin8 le 22-05-2007 à 16:18:08
Répondre à merlin8

cherche et tu trouveras.

Répondre à okinou

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

Répondre à merlin8

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:

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



:hello: au revoir :D


Message édité par merlin8 le 22-05-2007 à 19:57:51
Répondre à merlin8

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 ...

Répondre à okinou

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

Répondre à merlin8

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

------------------------------ sudo make me a sandwich

 

Répondre à BaCcHuSs@IDN

Code :
  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.     }

------------------------------ Nous ne pouvons pas prédire où nous conduira la Révolution Informatique. Tout ce que nous savons avec certitude, c'est que, quand on y sera enfin, on n'aura pas assez de RAM.
Répondre à Phoenix2006
Tom's Guide > Forum > Programmation > [PHP] Compter nombre fichiers dans dossier
Aller à :

Il y a 2033 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens