САМОУЧИТЕЛЬ PHP 4



         

Манипулирование каталогами


Вот несколько полезных функций для работы с каталогами.

bool mkdir(string $name, int $perms)

Создает каталог с именем $name и правами доступа $perms. Права доступа для каталогов указываются точно так же, как и для файлов. Чаще всего значение $perms устанавливают равным 0770 (предваряющий ноль обязателен — он указывает PHP на то, что это — восьмеричная константа, а не десятичное число). Например:

mkdir("my_directory",0755); // ñîçäàåò подкаталог â òåêóùåм каталоге

mkdir("/data"); // создает подкаталог data в корневом каталоге

В случае успеха функция возвращает true, иначе — false. Необходимо заметить, что пользователь не может создать подкаталог в родительском каталоге, права на запись в который у него отсутствуют. Здесь точно такая же ситуация, как и с файлами.

Вы, наверное, заметили, что атрибуты доступа 0770 означают "доступен для чтения, записи и исполнения для владельца и его группы". Что означает атрибут исполнения, установленный для каталога? Может быть, он разрешает пользователям запускать из него программы? А вот и нет. Право на "исполнение" показывает, что пользователь сможет просмотреть

содержимое каталога. Конечно, все это специфично для операционных систем семейства Unix.

bool rmdir(string $name)

Удаляет каталог с именем $name. В случае успеха возвращает true, иначе — false. Как всегда, действуют стандартные ограничения файловой системы на эту операцию.

bool chdir(string $path)

Сменяет текущий каталог на указанный. Если такого каталога не существует, возвращает false. Параметр $path

может определять и относительный путь, задающийся от текущего каталога. Вот несколько примеров:

chdir("/tmp/data");   // ïåðåõîäèì по абсолютному пути

chdir("./somathing"); // переходим в подкаталог текущего каталога

chdir("something");   // то же самое

chdir("..");          // переходим в родительский каталог

chdir("~/data");      // переходим в /home/ПОЛЬЗОВАТЕЛЬ/data (для Unix)

string getcwd()

Возвращает полный путь к текущему каталогу, начиная от "корня"

(/). Если такой путь не может быть отслежен (это иногда бывает в Unix из-за того, что права на чтение для родительских каталогов могут быть сняты), вызов "проваливается"

и возвращает false.

Эта функция появилась в PHP совсем недавно. Так что если ее не окажется в вашей версии, обновите ее поскорее, либо напишите заменитель (что не так-то просто).




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