Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vp-webdev
7 лет назад

Формирование CSV файлов на PHP.

По структуре CSV файл похож на многомерный массив или таблицу. Он поддерживается Excel-ем и открывается как обыкновенная таблица. А создать его можно прямо в блокноте.
Сейчас мы рассмотрим класс b3rtCSVWriter для удобной генерации CSV-файлов.
- Можно ли создать такой файл нативной функцией fwrite?
- Да, можно. Особенно строки с кавычками, точкой с запятой и переносами строк.

Скачиваем класс b3rtCSVWriter и подключаем к своему проекту:

require 'class.b3rtCSVWriter.php';

Сам класс скачиваем тут

Затем создаём экземпляр этого класса, указываем имя файла, в который будем сохранять результат и "делитель столбцов".

$csvWriter = new b3rtCSVWriter();
$csvWriter->setFilename('./myfile.csv');
$csvWriter->setDelimiter(';');

Можно писать данные, передавая их в виде массива.

$csvWriter->putRecord(['col1'=>'column 1', 'col2'=>'column 2', 'col3'=>'column 3']);

Данный с кавычками и точкой с запятой:

$csvWriter->putRecord([';v;', 'vv', 'v;v;a']);
$csvWriter->putRecord(['"h"', 'hy', 'y"p"g']);
$csvWriter->putRecord(['";r;"', 'gf', 'm;"j";l']);

Многострочные данные:

$csvWriter->putRecord(
['f', 'h

h', 'kk
"
kkk
""
a']);

И даже юникод:

$csvWriter->putRecord(['α', 'α;β', 'α"β"γ']);

Проверяем на ошибки:

if ($csvWriter->getErrors())
{
    echo "Errors:\n";
    print_r($csvWriter->getErrors());
}

Уничтожаем ненужный более экземпляр класса:

unset($csvWriter);

Готово. В тепличных условиях всё как всегда работает корректно, а когда заказчик начинает слать свои данные - всё часто рушится. Данный класс сведёт к минимуму возможные ошибки записи.

1
261.243 GOLOS
На Golos с August 2017
Комментарии (6)
Сортировать по:
Сначала старые