Иван Антонов: Хм. Судя по имени файла, мы с вами решали одну и ту же задачу ;)
Я решил ее так, как описал выше. Для разбора файла использовал XMLReader - но для он нормально работает только при наличии достаточной памяти. У меня хостинг для Битрикса, там памяти достаточно.
Это правда - но в определенном контексте.
В низкоуровневых языках математика работает быстро, а вызов функции сильно затратен. Поэтому в них разворачивание рекурсии в линию уменьшает оверхед.
Для высокоуровневых языков это может вовсе не иметь смысла.
Есть еще нюанс: XML в PHP можно читать несколькими способами, и у них очень разнятся производительность, потребление памяти и пр. Если затык именно в парсинге - стоит поэкспериментировать с другими вариантами.
А что вы тут собрались читать?
Скрипт 1 выставляет флаг "начал работу", скачивает и распаковывает архив, выставляет флаг "закончил работу".
Скрипт 2 запускается, скажем, минут через пятнадцать. Проверяет флаг "закончил работу" первого, парсит xml, заносит в базу данные, в том числе адреса фоток, которые надо скачать.
Скрипт 3 запускается каждые 5 минут, проверяет, есть ли в базе нескачанные фотки, выбирает первую, скачивает и помечает загруженной, проверяет, сколько прошло времени, если мало - ищет следующую, иначе заканчивает работу.
Собственно, и все. 1 и 2 разделять, в принципе, необязательно. Зависит от объема файла и ограничений хостера.
Можно разбить на ТРИ скрипта, давая каждому достаточно времени для выполнения и установив флаги, позволяющие убедиться, что предыдуший выполнен.
Третий - скачивание фоток - можно запускать многократно, проверяя, есть ли объекты для обработки, и обрывать по таймауту.
afna: А вы не пробовали посмотреть приложения тех, кто уже реализовал то, что вы собираетесь сделать? ЛитРес, например - что показывает при попытке оплаты?
Иначе вам тот самый браузер с поддержкой https придется внедрять внутрь приложения. При платеже картой ПС может, например, перебросить на страницу 3D-Secure, а платеж с электронного кошелька всегда происходит на сайте этого кошелька, а не ПС.
То есть сайт все-таки участвует в работе?
Тогда вам нужно все данные, которые будут переданы ПС, формировать на сервере (ключ не передается напрямую, он участвует в подписи).
Честно говоря, намного проще было бы вызывать из приложения браузер с адресом страницы оплаты на вашем сайте...
Ну, можно добавить пункт о том, что такое решение ограничивает работу стационарными компьютерами в пределах одной сети. В то время, как альтернатива (веб-сервер) позволит работать с данными с мобильных устройств, причем с любого устройства, подключенного к интернету.
"Причина 200 обновлений"?
Ой, вряд ли. Скорее - дырявая CMS или слабый пароль админа.
Собственно, и сам вопрос наводит на мысль, что проблема как бы не в сервере в первую очередь...
Особенно упоминание WP как образца чего-то, с чем можно заниматься безопасностью.
Artem: Ну, когда программист пишет что-то сам только после того, как не смог найти хоть что-нибудь хоть как-нибудь подходящее, на выходе обычно получается монстр из говна и палок. Самому автору мало подконтрольный.
Вадим Егоров: а вы где-то видели медицинские исследования о влиянии витаминов и прочей черники на восстановление сетчатки? Ну, а спазм, собственно, может иметь нервический генезис, и плацебо для борьбы с ним как раз показано ;)
Армянское Радио: Не берусь судить, с Qt не работал. Но для простых приложений-инструментов меня wx вполне устраивает. Далеко от чистых "крестов" отрываться не приходится.
Вряд ли вас должны интересовать отношения Битрикса с партнерами - вы-то на нем собрались паразитировать ;)
А так - демо на 30 дней, ничем не отличающееся от рабочего движка, можно просто скачать с офсайта. Способы его продлить в интернетах при желании находятся...
Я решил ее так, как описал выше. Для разбора файла использовал XMLReader - но для он нормально работает только при наличии достаточной памяти. У меня хостинг для Битрикса, там памяти достаточно.