Rosso Glitterato
Sito in lingua italiana Website in English language
Leggere un file CSV con il PHP

A volte capita di avere la necessità di leggere dei dati a partire da un file con estensione CSV. Vediamo come effettuare la lettura con il PHP!

// URL DEL CSV (PERCORSO RELATIVO O ASSOLUTO DEL TIPO HTTP://..)
$myfile = 'myfile.csv';
 
// INIZIALIZZAZIONE ARRAY DOVE METTERE I DATI
$array_dati = [];
 
// SEPARATORE DI DATI -> CARRIAGE RETURN (CHR13)
if (($h = fopen($myfile, "r")) !== FALSE)
{
   while (($data = fgetcsv($h, 1000, chr(13))) !== FALSE)
   { $array_dati[] = $data; }
    fclose($h);
}

Alcune note:

  • In questa prima parte abbiamo visto come leggere i dati dal file CSV
  • Alla funzione fgetcsv è stato passato in input il puntatore al file ($h), un numero massimo di caratteri previsti dalla riga, il carattere separatore tra le righe del csv. In questo caso è l'invio (carriage return)
  • L'array $array_dati contiene le righe del CSV

Ora passiamo alla lettura di ogni singolo campo contenuto nella riga del CSV, supponendo che i campi sono separati da ;

$entrate_array = count($array_dati);
 
// ESTRAZIONE DATI - LA PRIMA RIGA E' L'INTESTAZIONE
for ($i=1;$i<$entrate_array;++$i)
{   
   $stringa = $array_dati[$i][0];      
   $array_stringa = explode(";",$stringa);
   $campo1 = $array_stringa[0];
   $campo2 = $array_stringa[1];
   $campo3 = $array_stringa[2];
   ...
}

Alcune note:

  • Si suppone che il file CSV abbia un intestazione che non vogliamo leggere(per questo il ciclo for non parte da 0 ma da 1)
  • Si utilizza la funzione explode per recuperare ogni singolo valore della stringa separato da ;
  • Nelle variabili campo1, campo2, .... ho assegnato ogni singolo valore contenuto nelle righe del CSV

Rosso Glitterato, un sito di Morris C.Rosso Glitterato è un sito creato da Morris C. - 2018
Sito validato W3C per l'HTML5