Nie tak dawno pisałem o funkcjach fgetcsv()
i fputcsv()
w kontekście nakładania filtrów na strumienie PHP. Również z pomocą strumieni można rozwiązać problem tworzenia plików CSV w pamięci. Wystarczy otworzyć taki niby-plik w pamięci:
$fh = fopen('php://temp', 'rw');
i już można do niego zapisywać dane przez fputcsv()
:
fputcsv($fh, ["Imię", "Nazwisko", "Login", "PESEL"]);
Na koniec wystarczy tylko przewinąć wskaźnik pozycji w pliku na początek i pobrać jego zawartość:
rewind($fh); $csv = stream_get_contents($fh); fclose($fh);