Первый сайт на PHP



КОПИРОВАНИЕ, ЗАПРОС ИНФОРМАЦИИ - часть 2


Как же принцип рекурсии можно использовать для построения списка всех папок на аккаунте? А алгоритм построения этого списка при использовании рекурсии прост:

  • Получить список файлов и папок в текущей директории.
  • Перебирать элементы из этого списка по одному.
  • Если очередной элемент - директория, то вывести на страницу ее имя и выполнить этот алгоритм по отношению к этой директории, посчитав ее текущей.
  • Этот алгоритм следует реализовать в специальной функции - подпрограмме, которую можно вызывать по имени, передав ей при этом необходимую для работы информацию.

    К данной последовательности действий можно сделать лишь одно дополнение: если в списке копируемых объектов есть папки, то из выводимого списка директорий должны быть исключены как сами эти папки, так и все вложенные в них. Данное требование довольно понятно - скопировать папку во вложенную в нее папку невозможно. Ну и, естественно, в список папок для копирования не должна попасть та папка, в которой копируемые файлы находятся - как можно файл скопировать сам на себя?

    Остальные же действия кода, посвященного запросу подтверждения копирования файлов, те же самые, что и для кода удаления файлов и папок: вывести список копируемых объектов и кнопку подтверждения выбора действия.

    Начало кода:

    if ($copy!="")

    {

    Для удобства запишем в переменную название корневой папки аккаунта пользователя. Впоследствии мы будем ее неоднократно использовать в коде.

    $begin="files";

    Выводим запрос пользователю...

    echo ("Объекты для копирования:<br>");

    и, точно так же, как в блоке кода, посвященном удалению файлов, выводим список объектов, подлежащих копированию (сравните - код практически такой же):

    foreach ($fl as $i)

    {

    echo ("<input type=hidden name=fl[] value=$i>$folder/$i<br>") ;

    Еще один запрос...

    echo ("<bг>Выберите папку для копирования :<br>") ;

    и начинаем вывод дерева папок - вызываем функцию tree.

    tree($begin);




    Содержание  Назад  Вперед