Comment compter efficacement les lignes dans des fichiers texte volumineux (200 Mo) ?

Susan Sarandon
Libérer: 2024-11-02 07:38:02
original
322 Les gens l'ont consulté

How to Efficiently Count Lines in Large Text Files (200 MB )?

Compter les lignes dans des fichiers texte volumineux (200 Mo) sans erreurs de mémoire

Le comptage des lignes dans des fichiers texte volumineux à l'aide de file($path) peut entraîner des erreurs d'épuisement de la mémoire, car le fichier entier est chargé en mémoire. Pour résoudre ce problème, une approche plus efficace et économisant la mémoire est nécessaire.

Une méthode pour compter efficacement les lignes consiste à utiliser la fonction fgets(). En lisant et en traitant les lignes une par une, vous pouvez éviter de charger l'intégralité du fichier en mémoire :

<code class="php">$file = "largefile.txt";
$linecount = 0;
$handle = fopen($file, "r");

while (!feof($handle)) {
  $line = fgets($handle);
  $linecount++;
}

fclose($handle);

echo $linecount;</code>
Copier après la connexion

Ce code ouvre le fichier en lecture, lit une seule ligne à la fois en utilisant fgets(), incrémente le nombre de lignes, et se termine lorsque la fin du fichier est atteinte.

Une autre approche, particulièrement utile pour les fichiers comportant des lignes potentiellement très longues, consiste à compter les caractères de fin de ligne :

<code class="php">$file = "largefile.txt";
$linecount = 0;
$handle = fopen($file, "r");

while (!feof($handle)) {
  $line = fgets($handle, 4096);
  $linecount += substr_count($line, PHP_EOL);
}

fclose($handle);

echo $linecount;</code>
Copier après la connexion

Ici, substr_count() est utilisé pour compter le nombre de sauts de ligne dans chaque bloc de données lu.

Ces deux méthodes utilisent moins de mémoire car elles traitent les lignes de manière incrémentielle plutôt que de charger l'intégralité du fichier en 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!