Comment compter le nombre de lignes d'un ficher ??

Comment compter le nombre de lignes d'un ficher ?? - PHP - Programmation

Marsh Posté le 22-06-2003 à 11:50:59    

J'ai besoin de compter le nombre de lignes d'un fichier texte. Comment faire ? merci de m'aider

Reply

Marsh Posté le 22-06-2003 à 11:50:59   

Reply

Marsh Posté le 22-06-2003 à 13:24:42    

Y a pas de fonction toute faite (ou alors je l'ai loupée). Par contre, t'as ça : http://www.php.net/manual/fr/function.fgets.php
Ca lit une ligne. Donc t'ouvres ton fichier avec fopen(), tu fais un while(!feof($pointeur_fichier)) (cf l'exemple qui est dans le lien précédent) puis tu incrémentes un compteur dans ta boucle.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-06-2003 à 13:47:51    

file() retourne le fichier dans un tableau ou chaque valeur de ce tableau correspond à une ligne du fichier.
 
et array_count_values compte le nombre de valeurs du tableau et par conséquent le nombre de ligne du fichier.
 
 :whistle:  
 

Reply

Marsh Posté le 22-06-2003 à 14:55:10    

Hermes le Messager a écrit :

file() retourne le fichier dans un tableau ou chaque valeur de ce tableau correspond à une ligne du fichier.
 
et array_count_values compte le nombre de valeurs du tableau et par conséquent le nombre de ligne du fichier.
 
 :whistle:  
 
 


http://membres.lycos.fr/kanterbrolecho/+1.gif

Reply

Marsh Posté le 22-06-2003 à 15:01:16    

Hermes le Messager a écrit :

file() retourne le fichier dans un tableau ou chaque valeur de ce tableau correspond à une ligne du fichier.
 
et array_count_values compte le nombre de valeurs du tableau et par conséquent le nombre de ligne du fichier.
 
 :whistle:  


Et le jour où ton fichier est un log mensuel d'Apache tu fais un core dump parcequ'Apache n'a pas aimé charger un fichier de 1 Go [:powa]

Reply

Marsh Posté le 22-06-2003 à 15:14:50    

Ct juste un exemple ;)
 
Y'a juste que file() est à éviter comme la peste selon les fichiers qu'on va utiliser.
 
Il y a trop de risque que ça plante (ou simplement sature les ressources du serveur) si les fichiers sont trop gros.

Reply

Marsh Posté le 22-06-2003 à 15:39:25    

MagicBuzz a écrit :

Ct juste un exemple ;)
 
Y'a juste que file() est à éviter comme la peste selon les fichiers qu'on va utiliser.
 
Il y a trop de risque que ça plante (ou simplement sature les ressources du serveur) si les fichiers sont trop gros.


 
Bof, de toutes manières, qu'est-ce que tu proposes de mieux qui empêche de charger le fichier ? Une boucle comme indiqué au début ?  [:totozzz]  ça va pas surcharger le serveur ça si ton fichier fait 1 Go peut-être ?  :D

Reply

Marsh Posté le 22-06-2003 à 15:41:47    

Hermes le Messager a écrit :


 
Bof, de toutes manières, qu'est-ce que tu proposes de mieux qui empêche de charger le fichier ? Une boucle comme indiqué au début ?  [:totozzz]  ça va pas surcharger le serveur ça si ton fichier fait 1 Go peut-être ?  :D  

Bah nan puisque le buffer sera réutilisé à chaque tour de boucle.. A moins qu'il lise les 1Go d'un coup :whistle:

Reply

Marsh Posté le 22-06-2003 à 15:49:13    

*Syl* a écrit :

Bah nan puisque le buffer sera réutilisé à chaque tour de boucle.. A moins qu'il lise les 1Go d'un coup :whistle:  


 
En fait je sais pas, mais de toutes manières, buffer ou pas buffer, il faudra bien qu'il y ait un accès disque à chaque lecture de ligne. Et si le nombre de lignes est très important, l'occupation du serveur sera la même. Seule l'occupation mémoire diffèrera. ;)

Reply

Marsh Posté le 22-06-2003 à 15:56:10    

Hermes le Messager a écrit :


 
En fait je sais pas, mais de toutes manières, buffer ou pas buffer, il faudra bien qu'il y ait un accès disque à chaque lecture de ligne. Et si le nombre de lignes est très important, l'occupation du serveur sera la même. Seule l'occupation mémoire diffèrera. ;)
 


Oui, mais dans le cas d'un fichier de 1Go, tu risques de facilement saturer l'occupation mémoire [:spamafote]

Reply

Marsh Posté le 22-06-2003 à 15:56:10   

Reply

Marsh Posté le 22-06-2003 à 15:57:50    

Hermes le Messager a écrit :


 
Bof, de toutes manières, qu'est-ce que tu proposes de mieux qui empêche de charger le fichier ? Une boucle comme indiqué au début ?  [:totozzz]  ça va pas surcharger le serveur ça si ton fichier fait 1 Go peut-être ?  :D  


Pas au niveau mémoire.
 
Deplus, la vitesse de chargement du fichier sera sensiblement la même, donc la charge FS/CPU aussi.

Reply

Marsh Posté le 22-06-2003 à 15:59:03    

MagicBuzz a écrit :


Pas au niveau mémoire.
 
Deplus, la vitesse de chargement du fichier sera sensiblement la même, donc la charge FS/CPU aussi.


 
je pense que concernant l'occupation mémoire tu as raison. ;)
 

Reply

Marsh Posté le 23-06-2003 à 10:21:18    

Merci les gars, ca marche

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed