Î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.