Forum Webscript.Ru
Программирование => PHP => Тема начата: nagash от 22 Января 2003, 21:53:55
-
хочу сделать вот что...
конекчусь по ФТП (все данные известны)
и скачиваю целиком директорию (с поддиректориями)
вопросец...
ftp_nlist - возвращает только файлы? или папочки тоже...
а как сделать чтобы выкачать бесконечное количество вложеных папочек...
это же надо каждую просканировать... а если их там куча...?
-
я бы через exec запустил системный ftp
или попробуй http://www.v-wijk.net/
-
tebe skoree togda chto-to tipa ftpcopy nado ispolzovat\'...
http://www.ohse.de/uwe/ftpcopy/ftpcopy-0.6.0.tar.gz
-
ну и как вариант - pear :: net :: ftp
у него есть метод
getRecursive ( $remote_path, $local_path, $overwrite = false, $mode = null )
Судя по комментариям в классе это то что нужно (на практике я его не использовал)
-
всё крута... всё посмотрел...
но было бы неплохо написать эту функцию самому...
потому что есть задумки в другом месте использовать... но полубому принцип тот же останется... просканивать на неопределённую глубину папки...
надо написать функцию которая всё это делала бы...
есть идея... создавать многомернейшим массив... конечным результатом которого например будет
$folder[1][1][file]
$folder[2][file]
$folder[2][file]
$folder[3][1]
$folder[3][2][file]
примерно такого плана... =) но я никак не соображу как это сделать...
-
немогу закончить... помогите пожалуйста...
var $folder;
function scan($papka) {
сканирует папку и попутно засовывает в массив названия
$folder[$i] = $nazvanie;
проверяет.... если то что она засунула папка тогда
scan($papka);
всё закончила...
}
впринципе принцип очень простой и хороший... вот только одно но.. как увеличивать вложенность элементов переменной $folder
чтобы следующий раз когда она вызовет функцию скан не заменялись элементы а дальше записывались $folder[1][$i]....
м...?
-
nagash
Не надо выеживаться. Используй стандартный алгоритм для рекурсивного спуска. Примерно такой (пишу для локальной папки. Для FTP сам переделаешь):
function scan($folder)
{
Как-то там обрабатываем папку;
//Спускаемся
$dir=opendir("./$folder");
while ($file=readdir($dir))
if ($file!=\'.\'&&$file!=\'..\'&&is_dir($file))
scan("$folder/$file");
}
scan(\'.\');
-
так я тоже самое придумал =) только вот эту вот мелочь пропустил (тыркнул пальцем в центр монитора)
=)
-
nagash
Ну, ладно-ладно. В следующий раз дядя Маньяк не будет писать столь тривиального кода. А хочешь ту же саму задачу, но со стеком? Тоже, кстати, классический алгоритм
-
хочу конечно!