-
-
-
- Примеры
- API
Это старая версия документа!
Для отсутствия граблей оформляем файл в соответствии со стандартом RFC 4180 со следующими изменениями:
1). Файл должен быть сохранен в UTF-8 без BOM
2). Все значения полей csv должны быть заключены в двойные кавычки (")
3). Поля должны быть разделены (;)
4). Поля не должны содержать переводов строки (\n)
5). Все печатные служебные символы (;"\) внутри полей должны быть экранированы обратным слешем (\)
Пакеты MS Excel и OpenOffice некорректно читают экранирование в csv формате, поэтому для быстрой правки используем LibreOffice
Пример:
"name";"description";
"Наименование";"<span clss=\"red\">Красный текст</span>";
"Наименование";"<span clss=\"blue\">Синий текст</span>";
Запись данных csv:
//Преобразовать тектовое значение в поле csv function csv_quote($text) { $text=trim($text); $text=str_replace("\r\n",'', $text); $text=str_replace("\n",'', $text); $text=str_replace('"','\\"', $text); $text=str_replace(';','\\;', $text); return '"'.$text.'";'; } //Сохранить массив в csv. Ключи первого элемента запишутся как заголовки function save_csv($filename, $items){ $keys = array_keys($items[0]); foreach($keys as $key) { $content.= csv_quote($key); } $content.="\n"; foreach($items as $item) { foreach($item as $value) { $content .= csv_quote($value); } $content.="\n"; } file_put_contents($filename, $content); } Чтение данных CSV: $fp = fopen($filename, "rt"); $data=fgetcsv($fp,0,";"); fclose($fp);