Fare internet – il blog di webtocom.com

E' come il lego, più pezzi ho più sono allegro
Seguci su Facebook Seguici su FriendFeed Seguici su Twitter      Iscrivita ai nostri Feed      Mandaci una mail

PHP: Leggere il contenuto di un file CSV.

Scritto da Fare-internet il 13 novembre 2014 condividi condividi

Un file CSV è in un semplice file di testo formattato secondo determinate regole e compatibile con i principali programmi per la gestione di fogli elettronici come Excel, Calc (il foglio di calcolo di open Office) o Google Sheet.
CSV è la sigla di comma-separated values, cioè valori separati da virgola, ed è una tipologia di file che si usa per esportare o importare dati da una base di dati all’altra, questa non è la sua unica funzione ma la più coumune.
Anche se comma in inglese significa virgola, spesso le informazioni sono separate da punto e virgola, per il nostro esempio useremo il file dell’ISTAT sulle ripartizione regioni/province.

Il file è scaricabile da questo link

Riporto qui le prime 5 colonne delle 2 righe del file:
Codice ripartizione;Codice NUTS1 2006;Codice NUTS1 2010;”Ripartizione geografica (Maiuscolo)”;Ripartizione geografica;
1;ITC;ITC;NORD-OVEST;Nord-ovest;1;

Come si può vedere nella prima linea sono contenute le intestazoni, nella seconda i valori, separati da ; e non da ,.
Il simbolo che separa i valori è il “delimitatore” e è molto importante nella realizzaizione del nostro codice.
Quello che volgiamo fare è prendere una riga alla volta e impaginare i valori in una tabella HTML.

Per prima cosa assicuriamoci da avere il file CSV e il file PHP che chiameremo csv2table.php siano nella stessa cartella.
Cominciamo a digitare il seguente codice

<?php
//definiamo il delimitatore
$delimitatore = ‘;’;

//apriamo il file in lettura e ci posizioniamo sulla prima riga
$file = fopen(‘ripartizioni_regioni_province.csv’,‘r’);

//stampiamo il tag di apertura della tabella
echo "<table>";

// qui inseriremo il ciclo sui dati del file csv       

//stampiamo il tag di chiusra della tabella
echo "</table>";
?>

In pratica abbiamo definito il delimitatore e abbiamo aperto il file in lettura, poi abbiamo posizionato i 2 tag (apertura e chiusura) della tabella, tra questi due tag scriverermo il codice che prenderà di volta in volta una riga del file csv e produrrà una riga della tabella HTML.

Utilizzeremo la funzione php fgetcsv che rende una riga dal file precedentemente aperto e l’analizza in cerca di campi CSV, restituendo un array che contiene una cella per ogni campo.
Ecco il codice completo e funzionante.

<?php
//definiamo il delimitatore
$delimitatore = ‘;’;

//apriamo il file in lettura e ci posizioniamo sulla prima riga
$file = fopen(‘ripartizioni_regioni_province.csv’,‘r’);

//stampiamo il tag di apertura della tabella
echo "<table>";

// qui inseriremo il ciclo sui dati del file csv
while (($linea = fgetcsv($file, 1000, $delimitatore)) !== false) {
//leggo una linea alla volta del file csv
//e la inserisco in una riga nella tabella HTML
        echo  "<tr>";
        foreach( $linea as $campo) echo "<td>".$campo."</td>";
        echo "</tr>";
}

//stampiamo il tag di chiusra della tabella
echo "</table>";

//chiudo il file
fclose($file);

?>

Il file php completo è scaricabile a questo link.

Related posts:

  1. Inserire i dati proventineti da un database MySql in una tabella con il PHP
  2. Sapere se un file esite con il PHP
  3. Visualizzare il contenuto di un array usando foreach
  4. Conoscere la dimensione di un file con il PHP
  5. PHP: produrre un file javascript con il PHP.

I posti più popolari