Gennaio 10, 2025

fgetcsv() in PHP: Cos’è e A Cosa Serve?

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.