|
|
|
| Прайс-листы берем и сохраняем из экселя в csv формат.
Далее на php черех explode запихиваем в базу данных.
Вопрос в том, как правильно это сделать, обработать, чтобы коллизий не возникло.
Например там перевод строки в экселе вставленный, или знако ";", используемый в самом прайсе ? | |
|
|
|
|
|
|
|
для: Richard Ferlow
(10.12.2007 в 13:21)
| | Интересно, почему explode() ?
Формат csv куда сложнее простого implode.
Существует функция fgetcsv() - её и применяйте.
А ещё я бы очень хотел взглянуть на пример csv-файла со вставленным переводом строки. Кроме шуток. | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 14:43)
| | 1;"text
text";2;3 | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 14:56)
| | И этот csv был получен честным путем, то бишь создан в excel? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 15:14)
| | Trianon, вы меня еще мошеничестве подозреваете? Ай не хорошо :) "Честно", если жмахать Enter в ячейке, ничего не получится, но если вставить в ячейку текст с переводом строк, например, из Блокнота - ... в общем попробуйте сами. | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 15:18)
| | попробовал.
картинка удручающая.
Хотя бы тем, что переводы строк внутри ячейки и между строками - разные.
fgetcsv() эту "прелесть" хавает, интересно?
Во всех её вариациях... | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 15:27)
| | Да, внутри ячейки будет 0А. fgetcsv() лажает в таком случае. | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 15:35)
| | И как? Баг-репорт писать будем? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 15:38)
| | А вам больше всех надо?)) | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 15:43)
| | Мне - нет. Мне - только fgetcsv . Но поскольку они его при всём желании в существующих хостеров не запихнут, то и его не особо надо...
Придется дописывать собственный парсер... | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 15:57)
| | Ну тогда заодно и отпишите баг.) | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 16:04)
| | мне проще парсер дописать. :) | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 16:06)
| | И как расширение - csvlib, распространять. | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 16:14)
| | Самое обидное, что эта фигня почему-то и встречается....хотя надо же представить, чтобы кто-то в прай листы данные из блокнота пихал =) | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 16:06)
| | Кстати, опасения напрасны - в 5 все нормально, а вот на 4.3.9 почему-то глюк был, по идее то ведь тоже не должно быть? | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 16:57)
| | В changelog'e php5 функция fgetcsv упоминается около пяти раз.
а в php4 - как минимум в 4.3.10 и 4.3.11
Мерзкая на самом деле функция.
Потому что тот, кто придумывал формат этого CSV , с головой совсем таки не дружил.... | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 17:50)
| | Я с этой вставкой столкнулся случайно, месяцев 5 назад примерно. Товарищ печатал одним пальцем (в ворде), потом глядел на экран, жал Enter, так как решал, что пора.., а затем все это вставлял в ячейку. Тогда у меня стояла 4.3.9 - и результатом были лишние поля. Я тогда решил проблему кардинально - просто сказал ему, если будшеь жать без причины Enter, убью.)
Тогда надобность в csv была временной. С тех пор ни разу не требовалась мне эта функция. А тут решил проверить - работает. Поля определяются правильно, хотя сам перенос в строке так и остается. Сейчас у меня 5.2.6. Я вот просто сомневаюсь, может это у меня глючная либ была, странностей много было с ней. Кто бы на 4 версии проверил, интересно было бы узнать. | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 18:08)
| | Убили?
:) | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 18:17)
| | Нет, он из понятливых. :) | |
|
|
|
|
|
|
|
для: sim5
(10.12.2007 в 18:08)
| | Примерно так же справлялся - говорил, как надо подготавливать :) | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 14:43)
| | Пожалуй стоит поизучать эту функцию.
Вот я к тому и спрашиваю, что через explode не все гладко.
Хотя если подготавливать файл специально, то работает. | |
|
|
|
|
|
|
|
для: Richard Ferlow
(10.12.2007 в 13:21)
| | Может не в тему, но по-моему вас заинтересует это
http://softtime.ru/info/csv.php | |
|
|
|
|
|
|
|
для: mihdan
(10.12.2007 в 17:52)
| | >Может не в тему, но по-моему вас заинтересует это
Не поможет. У Антона тоже жесткое соответствие между числом строк csv-файла и числом элементов в массиве результата. А значит встроенные переводы строк ожидаемо обрабатываться не будут. | |
|
|
|
|
|
|
|
для: mihdan
(10.12.2007 в 17:52)
| | Посмотрите это может поможет | |
|
|
|
|
|
|
|
для: mihdan
(10.12.2007 в 18:14)
| | Не найдено ни одного документа, соответствующего запросу csv.
Не помогло :) | |
|
|
|