Пришел к выводу, что UNSET для переменных очень даже неплохо помогает освободить память.
+ на всякий случай я скачал xml файл на свой сервер и перебор начал из него (хотя это по сути никак ни на что не влияет, т.к. все данные все равно в переменной хранятся)
Сам файл xml весит 12 Мб. Но помимо информации о товаре, к каждому товару хранится еще порядка пяти путей к файлам картинок, которые я тоже выкачиваю со стороннего сервера к себе на сайт. Возможно именно поэтому 50 товаров у меня парсились минуту. Но если у меня 10 000 товаров? получается первочначальный парсинг займет около 2х часов? С выкачкой всех картинок? - и это нормально? (Добавление)
Кстати для сохранения картинок использую функцию COPY (Добавление)
Может есть какой-то более правильное решение с точки зрения логики?
Если в XML файле хранятся данные о товарах и пути к картинкам (на стороннем сайте) - то как оптимизировать парсинг данных и картинок?
Всем добрый день.
Сталкнулся с проблемой пасринга через simple_xml
$xml = simplexml_load_file($link);
Я получаю xml файл с товарами с другого сервера и записываю его в переменную. Проблема в том, что файл нереально большой.
Потом я прохожу по $xml через foreach и сортирую данные по своим 10 таблицам в БД.
Но при парсинге малого числа товара (ставлю ограничение в итерации) - всё работает.
Когда запускаю полный цикл - он может час парсится и потом выдать ошибку о том, что не хватает памяти для выполнения скрипта.
Подскажите как решается такая проблема?
в этой файле также прописано:
ini_set('memory_limit', '1449M');
ini_set('max_execution_time', '0');
set_time_limit(0);
Самое главное похожую рекурсивную функцию написал (для вывода неограниченного числа подкатегорий меню), и она работает... а вот эта на отрез отказывается... вообще не пойму в чем дело
В функция не работает при рекурсивном вызове... Именно если попадает в первый IF...
//Второй вариант ничего не возвращает... А должен по идее войти в IF, там вызваться рекурсивно, попать в ELSE и вернуть результат в виде объекта в $pages
//Если возврашет false - тогда ошибка 404 (но этот false не возвращается).
p.s. Сама функция - это вырезка из SPA (Добавление)
К слову - я после 7ой строки пробовал вернуть все параметры, которые я передаю в рекурсивный вызов - возвращает $hash, 2, $db, 2, 1 (Добавление)
А еще пробовал в начале функции написать условие:
if ($step == 2) return 1;
так вот единицу не возвращает... следовательно она почему-то не хочет вызываться рекурсивно... (Добавление)
Блин! Осенило! Я же результат рекурсии не записываю в переменную!!! Которую должен потом вернуть! (Добавление)
Спасибо мне, очень помог!
тебе талдычат что используя SSH-туннель можно с любым удаленным сервером работать как на локалхосте
гуй ты будешь пользовать или командную строку никого не волнует
что надо разрабам было сделать? SSH туннель встроить в гуеву программу?
Да, я понял)
Спасибо всем)) в навикате есть SSH Tunel ^^
Просто мало с SSH работаю... не привык к такому использованию...
Как раз SSH для этого и нужен. Можно пробросить порт и работать через него.
Я к тому, что может можно тогда подключиться через SSH но с использованием программного интерфейса как в Navicat? (просто не вижу причин почему это не может работать, а если может, то почему до сих пор никто из разработчиков это не реализовал)
В общем созрел такой необычный вопрос... Возможно ли удаленное подключение к БД с использованием FTP аутентификации?
Для чего/как/зачем?
Я использую для удаленного подключения Navicat MySQL. Не всегда хостер разрешает удаленное подключение к БД. Так вот может есть какой-то способ, авторизоваться через FTP и под видом "сервера" отправить запрос на подключение к БД на localhost с известными мне логином и паролем от БД ?
ммм... надеюсь идея ясна... Так вот возможно ли это? Если да, то как? (SSH не предлагать, интересует визуальное управление БД, как в Navicat)
Как обработать RESTful запрос?
Не могу понять, как в PHP принять и обработать (например POST) запрос, отправленный через RESTful ?
Т.е. переменная $_POST пустая. Что делать?
Спасибо, вам большое и за развернутый и за краткий ответ!
Я просто думал, что будет понятно в каком формате передавать логин и пароль (из тех ссылок, что я привел). Но больше документации нет. Пишу в тех.поддержку - там сидит "явист", который про php вообще ничего не знает и может в ответ кидать только ссылки на эти документации и описание WSDL. (Добавление)
Кстати авторизовался путем передачи в wsLoginPassword массив с переменными wsLogin и wsPassword