PHP offre diversi strumenti per leggere e processare file in maniera iterativa. Queste tecniche sono fondamentali per gestire file di grandi dimensioni senza caricare l'intero contenuto in memoria.
1. fopen(), fgets(), feof()
Il metodo tradizionale per leggere un file riga per riga prevede l'uso di fopen()
, fgets()
e feof()
.
$handle = fopen("dati.txt", "r");
if ($handle) {
while (!feof($handle)) {
$line = fgets($handle);
echo $line;
}
fclose($handle);
} else {
echo "Errore nell'apertura del file.";
}
2. file() con foreach
La funzione file()
legge l'intero file in un array, dove ogni elemento rappresenta una riga. È comoda ma carica tutto in memoria.
$righe = file("dati.txt");
foreach ($righe as $riga) {
echo $riga;
}
3. SplFileObject
Una soluzione orientata agli oggetti è SplFileObject
, che implementa l'interfaccia Iterator
e consente una lettura efficiente.
$file = new SplFileObject("dati.txt");
foreach ($file as $line) {
echo $line;
}
Conclusione
La scelta del metodo dipende dal contesto. Per file piccoli si può usare file()
, mentre per file grandi è consigliabile fgets()
o SplFileObject
per un uso più efficiente della memoria.