При записи кириллицы (или любого UTF-8 контента) в файл при помощи fputcsv Вы, скорее всего, получите нечитебальный текст. Как решить эту проблему — разберем в этой короткой статье.
Всё достаточно просто, хотя, конечно, и очень неочевидно. Перед записью нужно добавить следующий текст в файл:
fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF))
Таким образом пример записи в файл будет выглядеть вот так:
$df = fopen($filepath, 'w'); fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF)); fputcsv($df, array($someDataForWrite));
Приведенный выше код запишет кириллицу в файл именно благодаря добавленной строке, которая добавляет в файл header с нужной кодировкой.
Надеюсь статья была Вам полезной! Удачи!