Автор Тема: Глюки? Если да, то чьи?  (Прочитано 7177 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ash

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 10
  • +0/-0
  • 0
    • Просмотр профиля
    • http://artvladivostok.ru
оказалось не так все просто.
« Ответ #15 : 15 Мая 2002, 10:25:10 »
Дело в том, что ф-я fgets не учитывает особенностей csv файла. Ведь в нем экранируются специальные символы, встречающиеся в тексте (например: "), посему в базу загоняются двойные значения...
вот кусок csv файла
Цитировать

655NGVK03;"Момент.овс.каша""Вкусново""традицион. 40г 5пак/20";23,08
655NGVK10;"Момент.овс.каша ""Вкусново"" банан 40г 5пак/24";23,08

а вот итог вывода с ф-ей fgets
Цитировать

"Момент.овс.каша""Вкусново""традицион. 40г 5пак/20"
"Момент.овс.каша ""Вкусново"" банан 40г 5пак/24"

и кусок обработаный ф-ей fgetcsv
Цитировать

Момент.овс.каша"Вкусново"традицион. 40г 5пак/20
Момент.овс.каша "Вкусново" банан 40г 5пак/24

Как видишь - разница есть... Хотя вроде все работает, буквы не попадают и т.д., но а что если будет использована ; в тексте? Ее csv экранирует (test;"test11; test22";123) [test11; test22 - в одной ячейке находились], вот в данном примере функция подумает, что колонок не три, а четыре...

=(


P.S. Совсем забыл сказать, что я поменял разделитель и теперь функция выглядит так:

while ($arData = fgets($file, 4096))
{
$arData = explode(";",$arData);
....
« Последнее редактирование: 15 Мая 2002, 10:39:59 от ash »

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
м-да
« Ответ #16 : 15 Мая 2002, 14:06:23 »
в данном случае мне повезло, что нет " :)

ИМХО, вообще это явно какой-то баг в самом php.
причем повторюсь, что на 98se работает прекрасно с fgetcsv.

У кого с английским хорошо? может написать разработчикам? :)
Евгений aka Razor,

Оффлайн ash

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 10
  • +0/-0
  • 0
    • Просмотр профиля
    • http://artvladivostok.ru
угу
« Ответ #17 : 15 Мая 2002, 17:48:27 »
Я вот уже подумывал об этом, но не владею тех информацией, т.е. не смогу на программерском уровне описать баг.

З.Ы. да и аглицкий прихрамывает. =)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Глюки mysql + php?
« Ответ #18 : 17 Мая 2002, 02:07:28 »
на http://bugs.php.net/ , имхо, уже есть этот баг
с уважением,
магистр белой магии.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28