Перейти к содержимому


Правила форума

Внимание!!! Если не можете скачать, пожалуйста ознакомьтесь с условиями получения доступа с файлам форума. Правила форума


Поломался импорт из csv


Сообщений в теме: 6

#1 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 03 декабря 2016 - 22:22

Коллеги, ХЕЛП!))
Непонятно почему поломался импорт. Через 10-15 секунд после начала загрузки выдает белую страницу.
Наблюдаются такие странности:
Если каталог экспортировать архивом и, не открывая, сразу импортировать, то все работает чудесно.
Если csv файл добыть из архива и, не открывая, сразу импортировать - тоже все ОК.
Если же этот файл открыть в экселе и просто нажать сохранить даже не внося никаких изменений, то уже опять белый экран!!!
Но если этот же файл, полученный после распаковки архива, редактировать в LibreOffice - ТО ВСЕ ГРУЗИТСЯ НОРМАЛЬНО!!!!
Пытался восстановить сайт и БД из резервной копии на момент нормальной работоспособности этого функционала - результат отрицательный, тот же белый экран.
Обращался к хостеру - они говорят, что никаких изменений со своей стороны не делали.

Напоследок, тот же файл после сохранения в ЭКСЕЛЕ, который давал белый экран, попробовал импортировать на другой сайт на том же ShopCMS, лежащий на том же хостинге - все ОК. Импорт идет нормально.

Такое впечатление, что где-то проверяется и не пролазит кодировка, которая получается после сохранения в экселе.

Вобщем варианты закончились(((

Подскажите где искать причину этой проблемы. Интересно то, что утром импорт работал нормально, а вечером - уже нет. При этом, днем никакие работы с сайтом не проводились, кроме добавления и редактирования товаров через админку.

Заранее благодарю!

#2 badisoft

    Продвинутый пользователь

  • VIP
  • 5 006 сообщений
Репутация: 766
Мастер

Отправлено 04 декабря 2016 - 13:13

Просмотр сообщенияetdnepr сказал:

Подскажите где искать причину этой проблемы.
Очевидно, что в error-логе, а дальше в зависимости от увиденного. Либо разрешить вывод ошибок на экран.

1. файл .htaccess
==============
#php_value display_errors 0
php_value display_errors 1

2. файл init.php
=============
# @ini_set('display_errors',0);
@ini_set('display_errors',1);

Обычно достаточно п.2.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 04 декабря 2016 - 15:03

Спасибо, Дмитрий! Ситуация немного прояснилась.
Вот такую ошибку дает
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 94 bytes) in /home/alltoall/berghoff.dp.ua/www/core/functions/catalog_import_functions.php on line 122

Не пойму только при чем тут указанная строка в файле
Изображение

Перед этим ругалось на файл afcache.php
Я в найденных Вами штатных ошибках нашел ошибку про кавычки при импорте, заменил xEscSQL на ToText и начало ругаться на catalog_import_functions.php
Ребус какой-то)))

#4 badisoft

    Продвинутый пользователь

  • VIP
  • 5 006 сообщений
Репутация: 766
Мастер

Отправлено 04 декабря 2016 - 15:29

Цитата

Allowed memory size of 134217728 bytes exhausted (tried to allocate 94 bytes)
А в любом поисковике эту строку набрать? :)
И прочитать, например, одну из полученных ссылок - http://jbzoo.ru/docs...wed-memory-size

Цитата

Перед этим ругалось на файл afcache.php
Я в найденных Вами штатных ошибках нашел ошибку про кавычки при импорте, заменил xEscSQL на ToText и начало ругаться на catalog_import_functions.php
Ребус какой-то)))
Скорее всего, до исправлений этот файл находился в кэше (в afcache.php), поэтому ошибка указывала на кэш-файл.
При исправлении проблемы с кавычками (хотя она тут и ни при чем) Вы кэш стерли, поэтому ошибка стала указывать на исходный файл.

PS. В приведенной ссылке правильно написано - либо увеличивать память (128мб это ни о чем. Видимо, самый дешевый тариф на хостинге), либо переписывать импорт. Правильнее, конечно, переписать блок импорта полностью и с нуля, т.к. там он НАСТОЛЬКО через задницу (не оптимально) написан, что ужас просто. Но врядли Вы это сможете, так что для Вас один путь - переходить на более дорогой тариф, где больше памяти. У меня, к примеру, под тестовые ShopCMS выделено по 512Мб, а под рабочие по гигабайту.

PPS. А появление проблем после Экселя, скорее всего, связано с тем, что при сохранении Эксель где-то увеличивает размер содержимого (восемь символов пробела вставляет вместо символа табуляции, символ перевода строки (LF) заменяет на пару символов CR+LF (возврат каретки+перевод строки или еще что-нибудь). И это последняя капля, которая выводит размер обработки за пределы доступной памяти. Файл после сохранения через Эксель наверняка большего размера, чем исходный.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 04 декабря 2016 - 22:33

Во-первых, хочу сказать Вам, Дмитрий, спасибо за помощь!
Вы оказались правы, на хостинге таки был лимит 128Мб согласно пакета. Я попросил хостера поменять (временно) эту настройку и поставить 256Мб.
К сожалению, насколько я понимаю, положительного результата это не дало.
Вылезла та же ошибка
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 24 bytes) in /home/alltoall/berghoff.dp.ua/www/core/functions/catalog_import_functions.php on line 122

Вес импортируемого файла (в формате csv) - почти 15Мб, в нем 8672 строк. Я отрезаю часть и оставляю 4000 строк. Объем - 8,7Мб. Файл подгружается, но...
такое впечатление, что не распознаются столбцы.
http://i.shotnes.com...nshot_29913.png

Повторюсь, что перед тем, как все поломалось, файл 15Мб импортировался нормально. В день поломки на сайт было добавлено максимум 10 товаров. Говорю это к тому, что исходя из соображений чрезмерного объема файла, удаление из него 1000 строк должно было бы привести к устранению проблемы, но не получается((

Вот еще такие данные из опытов))
- Если файл после экспорта - 13,05Мб. Не открывая его импортирую - все ОК.
- После пересохранения в экселе - файл 14,9Мб. Результат импорта - ошибка.
- Отрезаю пару тысяч строк. Файл 12,05Мб (меньше исходного). Результат импорта - ошибка.

Загруз окончательно((

#6 badisoft

    Продвинутый пользователь

  • VIP
  • 5 006 сообщений
Репутация: 766
Мастер

Отправлено 05 декабря 2016 - 10:19

Цитата

Говорю это к тому, что исходя из соображений чрезмерного объема файла, удаление из него 1000 строк должно было бы привести к устранению проблемы, но не получается((
Значит, что-то зацикливает загрузку CSV и в конце концов наступает переполнение памяти вне зависимости от ее размера - 128Мб или 256Мб.
Надо:
1. Смотреть, что за товары были добавлены за эти дни. Чудес не бывает и явно дело в новодобавленных (или исправленных) товарах.
2. В чем отличие строк в CSV с этими товарами до и после Экселя.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 06 декабря 2016 - 22:29

Что тут скажешь.... Высокий уровень на лицо!)))))
Дмитрий, Вы оказались абсолютно правы.
Правили описание товаров. Делали это в Ворде. там же форматировали и потом копипастили на сайт.
В результате к тексту прилипало куча вот такой красоты:
mso-tstyle-rowband-size:0							 mso-tstyle-colband-size:0							 mso-style-noshow:yes							 mso-style-priority:99							 mso-style-qformat:yes							 mso-style-parent:""""							 mso-padding-alt:0cm 5.4pt 0cm 5.4pt							 mso-para-margin-top:0cm							 mso-para-margin-right:0cm							 mso-para-margin-bottom:10.0pt							 mso-para-margin-left:0cm							 line-height:115%							 mso-pagination:widow-orphan							 font-size:11.0pt							 font-family:""Calibri"",""sans-serif""							 mso-ascii-font-family:Calibri							 mso-ascii-theme-font:minor-latin							 mso-fareast-font-family:""Times New Roman""							 mso-fareast-theme-font:minor-fareast							 mso-hansi-font-family:Calibri							 mso-hansi-theme-font:minor-latin							 mso-bidi-font-family:""Times New Roman""							 mso-bidi-theme-font:minor-bidi						    }  <!--[endif]----> <h2>Глубокая сковорода 1102146 <span mso-fareast-font-family:calibri="" mso-fareast-theme-font:minor-latin""="">( Zeno) BergHOFF </span><span font-size:10.0pt="" font-family:&amp;quot=""


Это уже из Экселя скопировано. Эти "выражения" после Ворда разделены точкой с запятой, которые при пересохранении Экселе раскидывались по ячейкам таблицы, попадая практически во все столбцы (сортировка, код, наименование, цена, характеристик и даже далее пусты столбцы). приводило к ошибке))) Спасибо Вам огромное за помощь!