Compter fichier txt dans un répertoire via ph

Fermé
niou - 18 févr. 2008 à 11:27
 ced - 18 déc. 2008 à 16:21
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
A voir également:

6 réponses

frangipane44 Messages postés 70 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 11 octobre 2012 2
18 févr. 2008 à 11:38
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
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
frangipane44 Messages postés 70 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 11 octobre 2012 2
18 févr. 2008 à 11:49
Petite remarque : si tu fais un opendir, faut faire un closedir aussi non?
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
frangipane44 Messages postés 70 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 11 octobre 2012 2
18 févr. 2008 à 12:09
$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