Leggere un file di grandi dimensioni riga per riga in PHP

Minahil Noor 3 gennaio 2023
  1. Usa la funzione fgets() per leggere riga per riga un file di grandi dimensioni in PHP
  2. Usa la funzione file() per leggere riga per riga un file di grandi dimensioni in PHP
  3. Usa la funzione stream_get_line() per leggere un file di grandi dimensioni riga per riga in PHP
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:

funzione fgets per leggere un file di grandi dimensioni riga per riga in PHP

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:

stream_get_line (funzione per leggere un file di grandi dimensioni riga per riga in PHP

Nota
Il delimitatore . viene rimosso dall’output.

Articolo correlato - PHP File