Obsługa plików CSV do importu i eksportu danych

Pliki CSV (Comma Separated Values) w PHP pozwalają na łatwy import i eksport danych w formacie tekstowym. Dzięki temu można szybko przenosić informacje między różnymi systemami lub edytować je w arkuszu kalkulacyjnym (np. Excel). Wystarczy zapisać wartości jako linie tekstu rozdzielone przecinkiem, średnikiem czy innym separatorem.


Główne aspekty obsługi plików CSV

  • Format CSV
    • Zwykle dane rozdzielone przecinkiem (,), średnikiem (;) lub tabulatorem.
    • Często pierwszy wiersz zawiera nazwy kolumn.
  • Tworzenie CSV
    • Możesz użyć zwykłych funkcji do zapisu plików (fputcsv wbudowane w PHP), by formatować dane.
    • Dodajesz linie jedna po drugiej, np. id;imie;wiek itp.
  • Odczyt CSV
    • fgetcsv potrafi czytać kolejne wiersze i rozdzielać kolumny.
    • Pamiętaj o ustawieniu właściwego separatora (np. przecinek, średnik).
Przykład
<?php
// Eksport danych do CSV
$produkty = [
  ["ID", "Nazwa", "Cena"],
  [1, "Jabłko", 2.5],
  [2, "Gruszka", 3.0]
];
$fp = fopen("produkty.csv", "w");
if ($fp) {
  foreach ($produkty as $wiersz) {
    // fputcsv - zapisuje tablicę jako wiersz w CSV
    fputcsv($fp, $wiersz, ";");
  }
  fclose($fp);
  echo "<p>Zapisano plik produkty.csv</p>";
} else {
  echo "<p>Nie udało się otworzyć produkty.csv do zapisu</p>";
}

// Import danych z CSV
if (file_exists("produkty.csv")) {
  echo "<h3>Zawartość wczytana z produkty.csv</h3>";
  $fp2 = fopen("produkty.csv", "r");
  if ($fp2) {
    while (($row = fgetcsv($fp2, 0, ";")) !== false) {
      // $row jest tablicą wartości kolejnego wiersza
      echo implode(" | ", $row) . "<br>";
    }
    fclose($fp2);
  }
}
?>
Zwrócona zawartość
Zapisano plik produkty.csv

Zawartość wczytana z produkty.csv
ID | Nazwa | Cena
1 | Jabłko | 2.5
2 | Gruszka | 3

Przykładowe zastosowania plików CSV

  • Import/eksport produktów
    • Sklep internetowy może umożliwiać wgrywanie list towarów w CSV i pobieranie aktualnych danych do analizy.
  • Wymiana informacji między systemami
    • Inny program generuje plik CSV, a Twój skrypt go czyta i aktualizuje bazę danych.
  • Szybkie raporty
    • Generuj CSV z wynikami zapytań SQL i otwieraj w Excelu bez konieczności tworzenia zaawansowanych formatów.

Podsumowanie

  • Format CSV jest prosty w obsłudze i kompatybilny z wieloma narzędziami (Excel, Google Sheets).
  • fputcsv i fgetcsv w PHP ułatwiają zapisywanie i odczytywanie linii z danymi rozdzielonymi separatorem.
  • Pamiętaj o poprawnym ustawieniu separatora (np. ;) i kodowania (np. UTF-8), by uniknąć problemów z polskimi znakami.
  • CSV bywa świetną opcją do szybkiej wymiany danych, generowania raportów czy importu do baz danych.