Generarea unui fișier CSV (Comma-Separated Values) dintr-un tablou de date (array) este o cerință frecventă în dezvoltarea aplicațiilor web cu PHP, fiind utilizată adesea pentru exportul de comenzi, tabele de utilizatori sau rapoarte periodice.
Operațiunea este foarte simplă și rapidă datorită funcției native fputcsv() oferite de PHP, concepută special pentru formatarea automată a câmpurilor și separarea lor prin virgulă sau alt delimitator specificat.
Exemplu practic de generare CSV în PHP
Iată o structură de cod simplă și eficientă prin care poți scrie direct un vector multidimensional într-un fișier CSV:
[php]
// Definim datele sub forma unui tablou (array) multidimensional
$list = array(
array(‘Nume’, ‘Prenume’, ‘Oras’, ‘Observatii’),
array(‘aaa’, ‘bbb’, ‘ccc’, ‘dddd’),
array(‘123’, ‘456’, ‘789’),
array(‘”aaa”‘, ‘”bbb”‘)
);
// Deschidem fisierul tinta in modul scriere (‘w’)
$fp = fopen(‘file.csv’, ‘w’);
// Parcurgem fiecare element (rand) si il scriem in format CSV
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
// Inchidem handlerul de fisier
fclose($fp);
[/php]
Cum funcționează codul
fopen('file.csv', 'w'): creează fișierul sau îl suprascrie dacă există deja, pregătindu-l pentru scriere.fputcsv($fp, $fields): preia vectorul aferent rândului curent, adaugă automat ghilimelele necesare pentru valorile care conțin spații sau caractere speciale și include separatorul corespunzător (virgula în mod prestabilit).fclose($fp): eliberează resursa alocată și finalizează scrierea datelor pe disc.
Sfat util: Dacă intenționezi să deschizi fișierul generat în Microsoft Excel și conținutul conține diacritice românești sau caractere speciale, este recomandat să adaugi secvența BOM UTF-8 (fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));) imediat după deschiderea fișierului, înainte de prima scriere cu fputcsv().