|
|
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
Всем привет! Возникла проблема: Есть скрипт, который достаточно долго работает (5-15 минут). По мере надобности он вытаскивает файлы по FTP. Проблема в том, что ftp_get() не возвращает код ошибки в случае ошибки. Долго не мог разобраться, в чем же проблема, почему иногда все скачивается, а иногда перестает. Оказывается, между обращениями к FTP может проходить довольно долгое время, и FTP-сервер закрывает соединение по таймауту. Однако я не могу узнать из скрипта, открыто соединение, или нет. Есть несколько вариантов решения проблем: 1) перед каждым скачиванием устанавливать соединение заново; 2) юзать сокеты =) 3) юзать system + wget =) Может кто знает более изящное решение данной проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 11:39:47 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
Репослав, чем неустраивает 1) ? -открыли соединение -сделали что нужно -закрыли соединение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 12:47:54 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
r u, мне кажется неправильным с каждым ftp_get() открывать и закрывать соединение. Это похоже на костыль) ИМХО, соединение нужно закрывать тогда, когда в нем пропадает необходимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 13:34:10 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
Есть же холостые команды для поддержания фтп-соединения - PWD и NOOP. Выполнять их почаще в процессе работы скрипта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 14:08:12 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
Репославмежду обращениями к FTP может проходить довольно долгое время, и FTP-сервер закрывает соединение по таймауту т.е. в процессе выполнения какихто запросов или вычислений, нет возможности делать запросы для поддержания соединения? а когда скрипт получает управление то соединение уже закрыто по таймауту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 14:20:21 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
vkle, да, как-то не подумал, что можно бесполезные команды. Хотя, не считаю в данном случае это идеальным решением, но видимо, придется его использовать, спасибо! r u, на практике, такого еще не было, но теоретически может быть. Мне просто кажется странным, что функция не возвращает какой-либо код ошибки: либо true, либо false. Это не достаточно для полноценного взаимодействия с FTP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 15:37:08 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
Репославне считаю в данном случае это идеальным решениемНу... это стандартное решение для всех фтп-клиентов. NOP скорее всего как раз и ввели в протокол для таких целей. Для данного случая оно может быть и неоправданным, особенно если за время работы скрипта всего два сеанса связи. В таком случае вполне разумным будет открыть-поработать-закрыть. Если же сеансов фтп множество, тогда соединение наверно лучше держать открытым - холостая команда отработает скорее всего быстрее чем относительно медленная команда установки соединения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 16:41:38 |
|
||
|
PHP FTP
|
|||
|---|---|---|---|
|
#18+
по возможности можно поглядеть в сторону http://ru.wikipedia.org/wiki/SCP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 17:01:35 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=149&tid=1465298]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 350ms |

| 0 / 0 |
