Analizza un file CSV in PHP

Un CSV è un tipo di file. Significa valori separati da virgola. È comunemente usato in diversi software come Excel. Ciò consente di salvare i dati in un formato tabulare e con un’estensione .csv.

Per analizzare un file CSV in PHP, si può fare usando la combinazione delle funzioni fopen(), fgetcsv() e fclose() integrate in PHP.

Esempio:

/*
//sampleFile.csv
dog, cat, rat, fish
horse, cow, carabao
bird, rabbit, chicken
*/
$ctr = 1;
if (($file = fopen("sampleFile.csv", "r")) !== FALSE) {
  while (($record = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $total = count($record);
    echo "<p> $total fields in line $row: <br /></p>\n";
    $ctr++;
    for ($x = 0; $x < $ctr; $x++) {
        echo $record[$x] . "<br />\n";
    }
  }
  fclose($file);
}
//output:
/*
4 fields in line 1:

dog
cat
3 fields in line 2:

horse
cow
carabao
3 fields in line 3:

bird
rabbit
chicken
*/

L’esempio sopra analizza il contenuto di sampleFile.csv utilizzando queste funzioni:

fopen(Filename, Mode, Include_path, context)

Questa funzione accetta un URL o un file, associa una risorsa denominata specificata da filename a un flusso.

Parametri:

  • Filename (obbligatorio) - Questo parametro specifica il file o l’URL da aprire
  • Mode (obbligatorio): rappresenta il tipo di accesso richiesto al file.
  • Include_path (opzionale) - L’impostazione di questo parametro su 1 cercherà il file in include_path.
  • context (opzionale) - Specifica il contenuto dell’handle del file. È un insieme di opzioni che possono essere aggiornate sul comportamento del flusso.
fgetcsv(File, Length, Separator, Enclosure, Escape)

Questa funzione è responsabile dell’analisi di una riga da un file CSV aperto.

Parametri:

  • File (obbligatorio) - Questo parametro specifica il file aperto da cui restituire e da cui analizzare una riga.
  • Length (opzionale su PHP 5 e inferiori ma richiesto per PHP 5.1 e superiori) - Questo parametro è la lunghezza massima della riga. Deve essere maggiore della riga più lunga nel file. Se questo parametro non è presente, la lunghezza non è limitata, il che rende più lenta l’analisi.
  • Separator (opzionale) - Questo parametro è il separatore di campo e il valore predefinito è una virgola - ,.
  • Enclosure (opzionale) - Questo parametro è il recinto del campo e il valore predefinito è ".
  • Escape (opzionale) - Questo parametro è il carattere di escape e il valore predefinito è \\.

  • fclose()

Questa funzione chiude un puntatore a un file aperto.

Parametro:

  • File (obbligatorio) - Specifica quale file chiudere.
Nota

Il puntatore al file deve essere valido e deve puntare a un file aperto con successo da fopen().