Ho uno script che analizza file di grandi dimensioni riga per riga. Quando incontra un errore che non può gestire, si arresta, segnalandoci l'ultima riga analizzata.fseek() per riga, non per byte?
Questo è davvero il migliore/solo modo di cercare una linea specifica in un file? (. fseek()
non è utilizzabile nel mio caso)
<?php
for ($i = 0; $i < 100000; $i++)
fgets($fp); // just discard this
Non ho un problema con questo, è abbastanza veloce - si sente solo un po 'sporco. Da quello che so del codice sottostante, non immagino ci sia un modo migliore per farlo.
Bello! Ci sono passato un po 'di tempo fa e ho iniziato a usarlo. – jasonbar
In questo caso, la ricerca leggerà direttamente la riga 10.000, senza percorrere le righe 1 - 9.999 per raggiungere la linea indicata? – Googlebot
@Ali: no, come pensi che sappia dove iniziano le linee? Legge attraverso il file. Ci sono altre alternative se si vuole cercare direttamente una linea ma coinvolgono sistemi potenzialmente complessi per tenere traccia di dove iniziano le linee nel file. – salathe