ftp функции -- чтение первых N мегабайт из файла (ftp_*, sockets) вопрос

iZk

Новичок
ftp функции -- чтение первых N мегабайт из файла (ftp_*, sockets) вопрос

Задача: прочитать первые 10 мегабайт из N файлов.

Впринципе механизм работы через fopen ('ftp://...', 'r') очень даже шорошь. Открыл прочитал сколько надо, закрыл.

Но php не умеет работать с активными (PORT) соединениями, потому часть ftp серверов остается недоступной.

Казалось бы расширение php должно спасти. Но в нем нет возможности скачивать файл частично.

А вообще хочеться делать все это асинхронно, тоеть сразу с нескольких ftp. Вооружился socket_select и погнал изобретать велосипед. Написал свой класс. Довольно пахабно, работает, но мне не нравиться.

Так вот, уважаемые, может ктото имет на примете решение данного вопроса.

Вижу 3 (оптимальных) пути :

1. Найти внешнюю программу типа wget (с подержкой параметра ограничивающего закгрузку, т.е. фиксированный объем) и запускать в background процессы wget и смотреть раз в 10 секунд, например, выполняется ли процесс и достиг ли файл заданного размера в 10 Мб? Так вот таких программ я пока не нашел.

2. Все-таки найти реализацию ftp rfc 959 протокола на базе socket_* функций.

3. Использовать ftp_nb_continue, при этом писать данные в файл, а по достижению заданного размера прерывать процесс закачивания. А хотелось бы принимать данные в память, а не на диск.

Антон
 
Сверху