Maison >développement back-end >tutoriel php >Comment compter efficacement les lignes en gigaoctets de données texte ?

Comment compter efficacement les lignes en gigaoctets de données texte ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 14:43:02304parcourir

How Can You Efficiently Count Lines in Gigabytes of Text Data?

Optimisation du comptage de lignes dans les fichiers texte volumineux (multi-Go)

Pour les fichiers texte dépassant 200 Mo, le comptage des lignes à l'aide de count(file($path)) peut rencontrer limitations de mémoire. Voici une solution plus efficace :

<code class="php">$file = "largefile.txt";
$linecount = 0;

$handle = fopen($file, "r");

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

fclose($handle);

echo $linecount;</code>

Cette approche charge une seule ligne à la fois en mémoire, évitant ainsi d'avoir à stocker l'intégralité du fichier en mémoire.

Si vos fichiers peuvent contenir des fichiers extrêmement lignes longues, vous pouvez utiliser cette méthode alternative pour compter les sauts de ligne :

<code class="php">$linecount = 0;

$handle = fopen($file, "r");

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

fclose($handle);</code>

En découpant le fichier et en comptant les sauts de ligne, vous pouvez atténuer les problèmes de mémoire, même avec des lignes exceptionnellement longues.

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!

Déclaration:
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