Иллюстрированный самоучитель по PHP

Файл do.php

И так поступим с каждым объектом, имя которого передано сценарию через массив $fl, а путь к нему – через переменную Sfolder в адресной строке.

}

Собственно, и все (рис. 11.10).

Иллюстрированный самоучитель по PHP › Файловый менеджер › Файл do.php
Рис. 11.10. Удаление выполнено

Копирование, выполнение действия

С копированием будет посложнее. Напомню, что из сценария запроса дополнительной информации передан массив Sfl, состоящий из имен копируемых файлов и папок, и переменная $rd, содержащая имя с полным путем к той папке, в которую планируется осуществить копирование. Ну и, разумеется, путь к текущей папке, в которой изначально и находятся копируемые файлы – $folder.

Сначала напишем функцию копирования целой папки со всеми вложенными в нее папками на новое место. Эта функция, как и функции удаления папки и вывода списка всех папок на аккаунте, будет рекурсивной – т. е. с вызовом самой себя из своего кода. Алгоритм ее прост:

  1. Создать в папке назначения папку с тем же именем, что и у копируемой.
  2. Копировать из копируемой папки в новосозданную папку все ее содержимое.
  3. Если очередной копируемый объект – папка, то перейти к пункту 1, приняв в качестве папки назначения – новосозданную папку, а в качестве копируемой папки – этот самый очередной копируемый объект, оказавшийся папкой.

Рано или поздно функция дойдет до папок, содержащих только файлы, которые и станут прерывать рекурсию.

Функция будет получать полное имя (вместе с путем) папки, в которой находится копируемая папка, имя этой самой копируемой папки, и имя (вместе с путем) папки назначения копирования (т. е. той, в которую будет производиться копирование).

function copyfold ($fld, $nm, $tgt)

Внутри функции эти данные будут доступны в переменных $fld, $nm, $tgt соответственно.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.