Leggere un file di grandi dimensioni riga per riga in PHP
-
Usa la funzione
fgets()
per leggere riga per riga un file di grandi dimensioni in PHP -
Usa la funzione
file()
per leggere riga per riga un file di grandi dimensioni in PHP -
Usa la funzione
stream_get_line()
per leggere un file di grandi dimensioni riga per riga in PHP
In questo articolo, introdurremo metodi per leggere un file di grandi dimensioni riga per riga in PHP.
- Utilizzo della funzione
fgets()
- Utilizzo della funzione
file()
- Utilizzo della funzione
stream_get_line()
Usa la funzione fgets()
per leggere riga per riga un file di grandi dimensioni in PHP
La funzione incorporata fgets()
legge una riga da un file aperto. Possiamo usare questa funzione per leggere un file di grandi dimensioni riga per riga. La sintassi corretta per utilizzare questa funzione è la seguente.
fgets($fileName, $lengthOfFile);
La funzione fgets()
ha due parametri. I dettagli dei suoi parametri sono i seguenti
Parametri | Descrizione | |
---|---|---|
$fileName |
obbligatorio | È il file che vogliamo leggere riga per riga. |
$lengthOfFile |
opzionale | Specifica la lunghezza del file da leggere. Il suo valore predefinito è 1024 byte. |
Questa funzione restituisce una stringa
di lengthOfFile -1
dal file specificato dall’utente se ha successo. In caso di fallimento restituisce False
.
Il programma sotto mostra come possiamo usare la funzione fgets()
per leggere un file di grandi dimensioni riga per riga. Useremo le funzioni fopen()
e fclose()
rispettivamente per aprire e chiudere un file. Abbiamo un file di testo chiamato flowers.txt
che contiene i dettagli dei fiori.
<?php
if ($file = fopen("flowers.txt", "r")) {
while(!feof($file)) {
$line = fgets($file);
echo ("$line");
}
fclose($file);
}
?>
Abbiamo usato la funzione feof()
per leggere il file fino alla fine. L’output mostra il contenuto del file letto riga per riga.
Produzione:
Usa la funzione file()
per leggere riga per riga un file di grandi dimensioni in PHP
In PHP, possiamo anche usare la funzione file()
per leggere un file riga per riga. La funzione file()
legge un file in un array riga per riga. La sintassi corretta per utilizzare questa funzione è la seguente:
file($fileName, $flags, $context)
La funzione file()
accetta tre parametri. Il dettaglio dei suoi parametri è il seguente
Parametri | Descrizione | |
---|---|---|
$fileName |
obbligatorio | È il percorso in cui è archiviato il nostro file. |
$flags |
opzionale | Specifica le costanti che possiamo usare come flag per questa funzione. Potete leggerlo qui]. |
$context |
opzionale | È la risorsa che puoi creare utilizzando la funzione stream_context_create(). |
Il programma che legge il file utilizzando la funzione file()
è il seguente:
<?php
foreach(file('flowers.txt') as $line) {
echo $line. "\n";
}
?>
Usa la funzione stream_get_line()
per leggere un file di grandi dimensioni riga per riga in PHP
Possiamo anche usare la funzione stream_get_line()
per leggere un file riga per riga. Questa funzione legge un file fino a un delimitatore. La sintassi corretta per utilizzare questa funzione è la seguente:
stream_get_line($handle, $length, $ending)
La funzione stream_get_line()
accetta tre parametri. Il dettaglio dei suoi parametri è il seguente
Parametri | Descrizione | |
---|---|---|
$handle |
obbligatorio | È il percorso in cui è archiviato il nostro file. |
$length |
obbligatorio | Specifica la lunghezza del file da leggere. |
$ending |
obbligatorio | È una stringa che parla del delimitatore. |
Il programma che legge il file utilizzando la funzione stream_get_line()
è il seguente:
<?php
$file = fopen("flowers.txt", "r+");
while ($line = stream_get_line($file, 1024 * 1024, ".")) {
echo $line;
}
fclose($file);
?>
Produzione:
.
viene rimosso dall’output.