Есть прекрасная функция fputcsv(), которая помогает быстро и безболезненно записывать данные в csv файл.
Но если вы попробуете записать русский текст, то вы в итоговом файле увидите, что есть проблема с кодировкой. Выглядит это примерно так:
И даже несмотря на то, что данные у вас в UTF-8!
А вот как выглядит код, который делает то, что показано на картинке:
Так вот чтобы проблемы с кодировкой не было, надо всего лишь добавить 3 байта в файл. Это BOM (Byte Order Mark). Код получится следующим:
Теперь данные будут выглядеть корректно:
Но если вы попробуете записать русский текст, то вы в итоговом файле увидите, что есть проблема с кодировкой. Выглядит это примерно так:
И даже несмотря на то, что данные у вас в UTF-8!
А вот как выглядит код, который делает то, что показано на картинке:
$fp = fopen('testcsv.csv', 'w');
fputcsv($fp, array('Item', 'Столбец 1', 'Данные'), ';');
fclose($fp);
Так вот чтобы проблемы с кодировкой не было, надо всего лишь добавить 3 байта в файл. Это BOM (Byte Order Mark). Код получится следующим:
$fp = fopen('testcsv.csv', 'w');
fputs($fp, chr(0xEF) . chr(0xBB) . chr(0xBF)); // BOM
fputcsv($fp, array('Item', 'Столбец 1', 'Данные'), ';');
fclose($fp);
Теперь данные будут выглядеть корректно:
7 коммент.:
👍👍👍
Спасибо большое!!!
Очень выручил!!!
Это. Просто. ОЧешуенно!!!! Спасибо тебе!!!
Спасибо, чувак!
Благодарю!
Большое спасибо!
Очень помогло! Спасибо большое!
Отправить комментарий