Maison > Article > développement back-end > Comment compter efficacement les lignes dans des fichiers texte volumineux en PHP ?
Un moyen efficace de compter les lignes dans des fichiers texte volumineux
Compter les lignes dans des fichiers texte volumineux (plus de 200 Mo) peut poser des problèmes de mémoire en PHP . La méthode traditionnelle consistant à charger l'intégralité du fichier en mémoire et à utiliser file() peut entraîner des erreurs fatales dues à l'épuisement de la mémoire.
Pour résoudre ce problème, une approche plus efficace consiste à utiliser fgets() ou fgetc(). Ces fonctions lisent respectivement le fichier ligne par ligne ou caractère par caractère, sans charger l'intégralité du fichier en mémoire. Voici un exemple utilisant fgets() :
<code class="php">$file = "largefile.txt"; $linecount = 0; $handle = fopen($file, "r"); while(!feof($handle)){ $line = fgets($handle); $linecount++; } fclose($handle); echo $linecount;</code>
fgets() lit une seule ligne en mémoire à la fois, ce qui réduit considérablement l'utilisation de la mémoire.
Alternativement, fgetc() peut être utilisé pour compter les caractères de fin de ligne :
<code class="php">$file = "largefile.txt"; $linecount = 0; $handle = fopen($file, "r"); while(!feof($handle)){ $line = fgetc($handle); if($line == "\n" || $line == "\r\n"){ $linecount++; } } fclose($handle); echo $linecount;</code>
Cette approche utilise également moins de mémoire mais peut être plus lente en raison de la surcharge liée à la vérification des caractères de fin de ligne pour chaque caractère.
Ces techniques permettent un comptage de lignes efficace dans des fichiers texte volumineux sans problèmes de mémoire. Notez que ces méthodes peuvent encore rencontrer des limitations si une seule ligne dépasse la limite de mémoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!