Помощник
|
fgetcsv() и запятые |
WoWeb
|
Сообщение
#1
|
||
|
|
||
|
|||
x64 |
10.10.2017, 22:24;
Ответить: x64
Сообщение
#2
|
|
Вариант с изгалениями
Код <?php header('content-type:text/plain; charset=utf-8'); define('MACRO_DOUBLE_QUOTES', '#MACRO_DOUBLE_QUOTES#'); define('MACRO_COMMA_IN_QUOTES', '#MACRO_COMMA_IN_QUOTES#'); define('MACRO_COMMA', '#MACRO_SINGLE_COMMA#'); $csv_list = file('csv.txt'); $i = 1; foreach ( array_map('trim', $csv_list) as $v ) { if ( '' === $v ) continue; $csv_row = get_line_list($v); echo "\n" . $i++ . ' => '; print_r($csv_row); } function get_line_list($str_row) { // заменить двойные кавычки на мнемонику $str_row = str_replace('""', MACRO_DOUBLE_QUOTES, $str_row); // теперь заменить на мнемонику запятые в кавычках, кавычки выкинуть $str_row = preg_replace_callback('!"(.+?)"!', function($match) { return str_replace(',', MACRO_COMMA_IN_QUOTES, $match[1]); }, $str_row); // меняем оставшиеся запятые на макро $str_row = str_replace(',', MACRO_COMMA, $str_row); // преобразовать макро-кавычки с простые двойные, запятую в кавычках в запятую $str_row = strtr($str_row, [MACRO_COMMA_IN_QUOTES => ',', MACRO_DOUBLE_QUOTES => '"']); // и теперь финальное разбиение return explode(MACRO_COMMA, $str_row); } В принципе, понятно, ибо в лоб. |
|
|
WoWeb
|
Сообщение
#3
|
|
x64,
А если CSV файл будет на 1,5кк строк, не повесит ли подобное сервер? -------------------- |
|
|
x64 |
10.10.2017, 22:28;
Ответить: x64
Сообщение
#4
|
|
Читайте файл построчно
|
|
|
WoWeb
|
Сообщение
#5
|
|
x64, Благодарю, попробую.
Супер! То что надо, благодарю. Сообщение отредактировал WoWeb - 10.10.2017, 22:35 -------------------- |
|
|
Alexandr_js |
11.10.2017, 14:09;
Ответить: Alexandr_js
Сообщение
#6
|
|
В чем проблема использовать file?
http://php.net/manual/ru/function.file.php Цитата Возвращает файл в виде массива. Каждый элемент массива соответствует строке файла, с символами новой строки включительно. В случае ошибки file() возвращает FALSE.
-------------------- |
|
|
WoWeb
|
Сообщение
#7
|
|
|
Alexandr_js, Очень много ресурсов будет жрать, у меня csv файл большой примерно на 1,5 - 2кк строк. Если вытащить все в массив - много оперативы съест.
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Буквы, запятые, точки превращаю в чудо строчки. Напишу текст увлекательный, для клиентов привлекательный. |
15 | Vinessa | 8186 | 20.5.2016, 23:46 автор: parazit |
Текстовая версия | Сейчас: 30.3.2024, 4:44 |