Tengo un script que analiza archivos grandes línea por línea. Cuando encuentra un error que no puede manejar, se detiene, notificándonos la última línea analizada.fseek() por línea, no bytes?
¿Es esta la mejor/única forma de buscar una línea específica en un archivo? (. fseek()
no es utilizable en mi caso)
<?php
for ($i = 0; $i < 100000; $i++)
fgets($fp); // just discard this
no tengo un problema con esto, es lo suficientemente rápido - sólo se siente un poco sucia. Por lo que sé sobre el código subyacente, no creo que haya una mejor manera de hacerlo.
¡Agradable! Encontré esto hace un tiempo y comencé a usarlo. – jasonbar
En este caso, seek leerá directamente la línea 10,000, sin caminar a través de las líneas 1 - 9,999 para alcanzar la línea dada? – Googlebot
@ Ali: no, ¿cómo crees que sabe dónde comienzan las líneas? Lee a través del archivo. Existen otras alternativas si desea buscar directamente una línea, pero involucran sistemas potencialmente complejos para realizar un seguimiento de dónde comienzan las líneas en el archivo. – salathe