Как записать данные в CSV-файл
Короткий ответ
Откройте файл для записи и передавайте строки в fputcsv():
<?php
$file = sys_get_temp_dir() . '/recipe-export.csv';
$handle = fopen($file, 'w');
fputcsv($handle, ['name', 'price'], ',', '"', '');
fputcsv($handle, ['Tea', 250], ',', '"', '');
fputcsv($handle, ['Coffee, ground', 400], ',', '"', '');
fclose($handle);
echo file_get_contents($file);Результат:
name,price
Tea,250
"Coffee, ground",400Заголовки из ключей
Для массива записей первую строку берут из ключей:
<?php
$rows = [['name' => 'Tea', 'price' => 250], ['name' => 'Juice', 'price' => 180]];
$file = sys_get_temp_dir() . '/recipe-export.csv';
$handle = fopen($file, 'w');
fputcsv($handle, array_keys($rows[0]), ',', '"', '');
foreach ($rows as $row) {
fputcsv($handle, $row, ',', '"', '');
}
fclose($handle);
echo file_get_contents($file);Результат:
name,price
Tea,250
Juice,180Кириллица в Excel
Чтобы Excel правильно открыл файл в UTF-8, запишите в самое начало три байта — метку BOM: fwrite($handle, "\xEF\xBB\xBF").