Introduzione
Nella programmazione PHP, la funzione fgetcsv()
è uno strumento essenziale per leggere i dati da file CSV (Comma-Separated Values). Questa funzione è particolarmente utile quando si ha bisogno di importare dati strutturati da un file esterno in un’applicazione PHP. In questo articolo, esploreremo come utilizzare fgetcsv()
, quando usarla e alcuni esempi pratici.
Spiegazione
La funzione fgetcsv()
in PHP legge una riga da un file CSV e la restituisce come un array. Questa funzione è progettata per gestire automaticamente il parsing dei valori separati da virgole, il che la rende estremamente utile per lavorare con dati tabulari. Ecco una sintassi di base della funzione:
fgetcsv(resource $handle, int $length = 0, string $separator = ",", string $enclosure = '"', string $escape = "\\")
Dove $handle
è il puntatore al file, $length
è la lunghezza massima da leggere (può essere omesso), $separator
è il delimitatore di campi, $enclosure
è il carattere che racchiude ogni campo e $escape
è il carattere di escape.
Quando si utilizza
La funzione fgetcsv()
è ideale da utilizzare quando si ha bisogno di leggere dati da un file CSV per elaborarli o importarli in un database. È comunemente utilizzata in applicazioni web che richiedono l’importazione di dati dai file forniti dagli utenti o da altre fonti esterne. Inoltre, fgetcsv()
è utile per processare grandi dataset che non possono essere comodamente gestiti in memoria.
Esempi
Esaminiamo alcuni esempi pratici di utilizzo della funzione fgetcsv()
in PHP.
Esempio 1: Lettura di un file CSV
<?php
// Apri il file CSV
$filename = 'dati.csv';
if (($handle = fopen($filename, "r")) !== FALSE) {
// Leggi e processa ogni riga del file
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
// Stampa i dati letti
print_r($data);
}
// Chiudi il file
fclose($handle);
}
?>
Esempio 2: Importazione di dati CSV in un database
<?php
// Connessione al database
$mysqli = new mysqli("localhost", "user", "password", "database");
// Verifica connessione
if ($mysqli->connect_error) {
die("Connessione fallita: " . $mysqli->connect_error);
}
// Apri il file CSV
$filename = 'dati.csv';
if (($handle = fopen($filename, "r")) !== FALSE) {
// Leggi e importa ogni riga nel database
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$sql = "INSERT INTO tabella (colonna1, colonna2, colonna3) VALUES ('$data[0]', '$data[1]', '$data[2]')";
$mysqli->query($sql);
}
// Chiudi il file
fclose($handle);
}
// Chiudi la connessione al database
$mysqli->close();
?>
In questi esempi, abbiamo visto come leggere un file CSV e come importare i dati in un database utilizzando la funzione fgetcsv()
. Questi esempi offrono una base solida per lavorare con i file CSV in PHP.
Giorgio
Sono un Web Developer con oltre 20 anni di esperienza nello sviluppo di applicazioni web complesse. Specializzato in PHP, gestione di database relazionali e non relazionali, e integrazione di API, realizzo soluzioni robuste e scalabili per soddisfare esigenze aziendali e tecniche. Mi occupo di architetture server-side, ottimizzazione delle performance e automazione dei processi.