Здравствуйте!
У меня есть XMl-файл (85 Мб, 48445 товаров). Пытаюсь импортировать его с помощью стандартного модуля Import, поставляемого с Ubercart. В итоге через 5-10 минут у меня на сайте только 790 товаров (пробовал два раза подряд). Больше не импортируется.
Объясните, пожалуйста, в чем здесь проблема?
P.S. Из PHP.ini
!>
memory_limit = 1024M ; Maximum amount of memory a script may consume (128MB)
; Maximum allowed size for uploaded files.
upload_max_filesize = 100M
; Document expires after n minutes.
session.cache_expire = 3600
; Maximum size of POST data that PHP will accept.
post_max_size = 100M
max_input_time = 36000 ; Maximum amount of time each script may spend parsing request data
Комментарии
XMl-файл - это вообще прикольная вестч ))) его надо смотреть. + надо знать это происходит на локали или на живом? там косяков как грязи)) давайте больше информации )) не забудьте посмотреть кодировку файла xml. + если он открывался notepad++ может чего-то добавилось, с большего надо дебажить.
Спасибо, что откликнулись!
Файл большой, приложить не могу.
Работаю на локалхосте, Денвер-3.
В ноутпаде++ открывается с большим трудом. Поставил там кодировку UTF-8, UNIX. XML-файл составлен по всем правилам, при импорте никакой ошибки не выдает.
Попробовал импортировать еще раз. Работает импорт 1 минуту, после этого база пополняется теми же самыми 790 товарами (т.е. сейчас у меня 2370 уже, каждого по три). На экране сообщение "File uploaded successfully."
?
нотепад при перекодировании 100% добавляет свои символы которые надо потом удалять из файла (причем в нотепаде они не видны)на эти грабли лично наступал 3-ри раза))). лучше сразу его в utf8 плюс ко всему бейте вашего монстра на части уверен что это возможно.
Код пишу в ноутпаде++. Файл .php, для создания XML-файла имеет кодировку ANSI, а для данных из БД, я применяю функцию iconv. Но потом открываю XML в ноутпаде и ставлю перекодировать в utf-8.
fputs($f2, '<name>field_book_author</name>');
fputs($f2, '<delta><value>'.iconv('WINDOWS-1251', 'UTF-8', $data['book_author']).'</value></delta>');
fputs($f2, '</field>');
Только вот почему цифра такая 790? МОжет настройки MySQL виноваты?
Посмотрите в другом текстовом редакторе на строки между 790 и 791 товаром. может обнаружите чего нибудь.
Или в конце 790 товара, или в начале 791.
Самый простой вариант - Просто разбейте файл на несколько частей.
А может просто по таймауту вылетает?
скорее всего 60с время работы php скрипта. если так то импорт займет 62 минуты, файл бить однозначно на несколько частей
Я тоже думаю что это какое-то ограничение, либо по скорости, либо по времени. Но где его снять?
Если вы обратите внимание на мой первоначальный пост, то увидите, что в php.ini я все что мог в этом направлении сделал.
А это вообще происходит на живом хосте или на локали?
На локалхосте, Денвер-3 использую.
Ну тогда 100% надо резать файл на части и смотреть где вылетает. Иначе ничего не найдете.