Problème :
Les scripts PHP peuvent rencontrer des problèmes de mémoire lorsqu'ils tentent de compter les lignes de gros fichiers texte (2 Mo). Une approche courante utilisant file() et count() peut déclencher une erreur de mémoire fatale.
Solution :
Pour éviter l'épuisement de la mémoire, envisagez d'adopter une approche plus efficace :
<code class="php">$file = "largefile.txt"; $linecount = 0; $handle = fopen($file, "r"); while (!feof($handle)) { $line = fgets($handle); $linecount++; } fclose($handle); echo $linecount;</code>
Cette approche utilise fgets() pour lire une seule ligne à la fois, ce qui réduit l'utilisation de la mémoire.
Pour les lignes extrêmement longues, une variante utilisant substr_count() peut être utilisée pour compter les caractères de fin de ligne :
<code class="php">$handle = fopen($file, "r"); while (!feof($handle)) { $line = fgets($handle, 4096); $linecount = $linecount + substr_count($line, PHP_EOL); } fclose($handle); echo $linecount;</code>
En implémentant ces techniques, les scripts PHP peuvent compter efficacement les lignes de gros fichiers texte tout en économisant la 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!