Cum construiești un parser CSV în PHP: citirea și procesarea datelor

În dezvoltarea aplicațiilor web sau a scripturilor de administrare, apare frecvent necesitatea de a extrage date dintr-un fișier CSV (Comma-Separated Values) pentru a le introduce într-o bază de date (precum MySQL) sau pentru a le prelucra conform cerințelor specifice ale proiectului.

De exemplu, un scenariu comun este actualizarea periodică a prețurilor sau a stocurilor de produse dintr-o bază de date pe baza unui fișier CSV furnizat de client sau de un furnizor extern.

Exemplu de cod: citirea fișierului CSV cu fgetcsv()

PHP oferă funcția nativă fgetcsv(), ideală pentru parcurgerea linie cu linie a fișierelor CSV fără a încărca inutil memoria serverului. Iată o structură simplă și robustă:

[php]
// Deschidem fișierul CSV în modul citire (‘r’)
if (($handle = fopen(„import_preturi.csv”, „r”)) !== FALSE) {
// Parcurgem fișierul linie cu linie
while (($data = fgetcsv($handle, 1000, „,”)) !== FALSE) {
// Datele fiecărei linii sunt disponibile sub formă de tablou indexat:
// $data[0] reprezintă prima coloană
// $data[1] reprezintă a doua coloană
// $data[2] reprezintă a treia coloană etc.

// Aici poți include logica de prelucrare sau interogarea SQL dorită
}
// Închidem handlerul de fișier pentru a elibera resursele alocate
fclose($handle);
}
[/php]

Cum funcționează acest script

  • fopen("import_preturi.csv", "r"): deschide fișierul specificat doar pentru citire și returnează un pointer către resursa de fișier.
  • fgetcsv($handle, 1000, ","): citește câte un rând din fișier (până la o lungime maximă specificată, aici 1000 de caractere), separă valorile după delimitator (virgula) și returnează un tablou (array) indexat numeric cu valorile găsite.
  • fclose($handle): eliberează resursa sistemului de operare după ce parcurgerea fișierului s-a încheiat.

După extragerea valorilor în tabloul $data, poți valida informațiile, le poți formata și le poți salva în baza de date printr-un prepared statement (folosind PDO sau MySQLi). Construirea unui modul de import CSV devine astfel o sarcină curată și ușor de întreținut.

Lasă un comentariu