Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP FTP / 8 сообщений из 8, страница 1 из 1
09.04.2012, 11:39:47
    #37744785
Репослав
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
Всем привет!
Возникла проблема:

Есть скрипт, который достаточно долго работает (5-15 минут). По мере надобности он вытаскивает файлы по FTP.
Проблема в том, что ftp_get() не возвращает код ошибки в случае ошибки. Долго не мог разобраться, в чем же проблема, почему иногда все скачивается, а иногда перестает. Оказывается, между обращениями к FTP может проходить довольно долгое время, и FTP-сервер закрывает соединение по таймауту. Однако я не могу узнать из скрипта, открыто соединение, или нет.

Есть несколько вариантов решения проблем:
1) перед каждым скачиванием устанавливать соединение заново;
2) юзать сокеты =)
3) юзать system + wget =)

Может кто знает более изящное решение данной проблемы?
...
Рейтинг: 0 / 0
09.04.2012, 12:47:54
    #37744945
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
Репослав,

чем неустраивает 1) ?

-открыли соединение
-сделали что нужно
-закрыли соединение
...
Рейтинг: 0 / 0
09.04.2012, 13:34:10
    #37745033
Репослав
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
r u,
мне кажется неправильным с каждым ftp_get() открывать и закрывать соединение. Это похоже на костыль) ИМХО, соединение нужно закрывать тогда, когда в нем пропадает необходимость.
...
Рейтинг: 0 / 0
09.04.2012, 14:08:12
    #37745082
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
Есть же холостые команды для поддержания фтп-соединения - PWD и NOOP. Выполнять их почаще в процессе работы скрипта.
...
Рейтинг: 0 / 0
09.04.2012, 14:20:21
    #37745101
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
Репославмежду обращениями к FTP может проходить довольно долгое время, и FTP-сервер закрывает соединение по таймауту

т.е. в процессе выполнения какихто запросов или вычислений, нет возможности делать запросы для поддержания соединения?
а когда скрипт получает управление то соединение уже закрыто по таймауту?
...
Рейтинг: 0 / 0
09.04.2012, 15:37:08
    #37745308
Репослав
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
vkle, да, как-то не подумал, что можно бесполезные команды. Хотя, не считаю в данном случае это идеальным решением, но видимо, придется его использовать, спасибо!

r u, на практике, такого еще не было, но теоретически может быть. Мне просто кажется странным, что функция не возвращает какой-либо код ошибки: либо true, либо false. Это не достаточно для полноценного взаимодействия с FTP.
...
Рейтинг: 0 / 0
09.04.2012, 16:41:38
    #37745435
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
Репославне считаю в данном случае это идеальным решениемНу... это стандартное решение для всех фтп-клиентов. NOP скорее всего как раз и ввели в протокол для таких целей. Для данного случая оно может быть и неоправданным, особенно если за время работы скрипта всего два сеанса связи. В таком случае вполне разумным будет открыть-поработать-закрыть. Если же сеансов фтп множество, тогда соединение наверно лучше держать открытым - холостая команда отработает скорее всего быстрее чем относительно медленная команда установки соединения.
...
Рейтинг: 0 / 0
09.04.2012, 17:01:35
    #37745482
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP FTP
по возможности можно поглядеть в сторону
http://ru.wikipedia.org/wiki/SCP
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP FTP / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]