Манипулирование каталогами
Вот несколько полезных функций для работы с каталогами.
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 совсем недавно. Так что если ее не окажется в вашей версии, обновите ее поскорее, либо напишите заменитель (что не так-то просто).