Compter fichier txt dans un répertoire via ph

niou -  
 ced -
Bonjour,
Voila j'utilise ce code pour compter le nombre de fichiers txt présent dans un répertoire.


////////////////////////////////////// COMPTAGE DU NOMBRE DE FICHIER TXT DANS LE REPERTOIRE /////////////////////////////////////////////////////////
// N'oubliez pas de configurer ce script en renseignant les informations nécessaires et modifiables
// lisiting de tous les fichiers
$tableau=""; $nbr=0;
$handle=@opendir($Nom); // Chemin du dossier

while ($fichier = @readdir($handle))
{
	// -3 car txt = 3 lettres:
	$extension=substr($fichier,-3);

	// Vérifications de l'extension du fichier
	// Ce script n'accèpera donc que les fichiers ayants l'extension .txt :
	if($fichier!="." && $fichier!=".." && (eregi("txt",$extension)))
	{
		$listing[$fichier]=$nbr;
	}
	$nbr_img++; // Incrémentation

} // Fin du while
$nbr =($nbr-2); // Cette variable contient le nombre de fichiers du dossier
echo "Nombre de fichier txt présent dans  ";
echo $Nom;
echo " : ";
echo $nbr;


il marche plutôt bien mais le problème c'est qu'il me compte toutes les extensions..j'ai 2 fichiers txt,1 .xml et 1 .csv et il me retourne:
Nombre de fichier 4
Quelqu'un voit d'où viens l'erreur ?
Merci

6 réponses

  1. frangipane44 Messages postés 74 Statut Membre 2
     
    Je connais pas trop le php mais ça serait pas plutôt ça qu'il faut faire?
    ////////////////////////////////////// COMPTAGE DU NOMBRE DE FICHIER TXT DANS LE REPERTOIRE /////////////////////////////////////////////////////////
    // N'oubliez pas de configurer ce script en renseignant les informations nécessaires et modifiables
    // lisiting de tous les fichiers
    $tableau=""; $nbr=0;//$tableau tu t'en sers pas ici?
    $handle=@opendir($Nom); // Chemin du dossier
    
    while ($fichier = @readdir($handle))
    {
    	// -3 car txt = 3 lettres:
    	$extension=substr($fichier,-3);
    
    	// Vérifications de l'extension du fichier
    	// Ce script n'accèpera donc que les fichiers ayants l'extension .txt :
    	if($fichier!="." && $fichier!=".." && (eregi("txt",$extension)))
    	{
    		$listing[$fichier]=$nbr; //ça sert à quoi $listing?
                    $nbr++; // Incrémentation
    	}
    	
    
    } // Fin du while
    echo "Nombre de fichier txt présent dans  ";
    echo $Nom;
    echo " : ";
    echo $nbr;
    0
  2. Alex
     
    Bonjour,

    $listing[$fichier]=$nbr;


    Pourrais tu détailler la ligne s'il te plait, je n'ai vu aucune erreure, par contre il est possible que le problème provienne de là, car si j'ai bien suivi, lorsque tu tape cette ligne $nbr vaut 0, il faudrait donc changer les conditions de ton If dans ce cas.
    Je ne sais pas si j'ai été clair, mais détail moi la ligne s'il te plait.
    0
  3. frangipane44 Messages postés 74 Statut Membre 2
     
    Petite remarque : si tu fais un opendir, faut faire un closedir aussi non?
    0
  4. niou
     
    merci
    Oui j'ai oublié le close, je t'en remercie
    en fait, c'est un bout de code que j'ai récupérer ici :http://www.tonwebmaster.com/zones_webmasters/astuce_php_countfilesdir.php

    Donc je ne comprends pas non plus le : $listing[$fichier]=$nbr;
    Je vais essayer de modifier tous sa
    en fait je n'arrive pas a comprendre $fichier!="." && $fichier!=".."
    Si qulequ'un peut me l'expliquer
    Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. niou
     
    Bon en fait j'ai fais sa:
    if(eregi("txt",$extension))
    {
    //$listing[$fichier]=$nbr_img;
    $nbr_img++; // Incrémentation
    }

    Sa marche, 'ai aussi enlevé les lignes : //$nbr_img =($nbr_img-2); // Cette variable contient le nombre de fichiers du dossier
    et $tableau="";

    Merci pour votre aide
    0
    1. ced
       
      dans un repertoire courant :
      // fonction nombre de fichier texte dans un repertoire
      foreach (glob("*.txt") as $filename)
      
      { 
      $nbr++; // Incrémentation 
      } 
      
      echo $nbr;
      
      aussi simple que cela .....
      0
  7. frangipane44 Messages postés 74 Statut Membre 2
     
    $fichier!="." && $fichier!=".." ça veut dire si le nom du fichier est différent de "." et si le nom est différent de ".."
    le "." c'est pour le répertoire courant et le ".." c'est pour le répertoire parent
    0