|
|
Написать письмо авторам | ||
УЧЕБНИК PHP |
справочник функций <Оnline> |
Об учебнике |
Обновление |
Работа с каталогамиДля установки текущего каталога применяется функция chdir: int chdir ( string directory) Работать с этой функцией можно следующим образом:
Чтобы узнать текущий каталог можно воспользоваться функцией getcwd: string getcwd ( string path) Для того чтобы открыть каталог используется функция opendir, открывающая каталог, заданный параметром path: int opendir ( string path) После того, как каталог открыт, прочитать его можно функцией readdir: string readdir ( int dir) Эта функция возвращает имена элементов, содержащихся в каталоге. Кроме файлов и папок в каталогах находятся также элементы "." и "..". Первый элемент указывает на текущий каталог, а второй - на родительский. Текущий каталог, кстати, можно открыть, указав его имя как ".":
После того, как работа с каталогом закончена, его нужно закрыть. Закрытие каталога выполняется при помощи функции closedir: void closedir ($dir) Ниже приведен пример, осуществляющий чтение и вывод файлов, находящихся в текущем каталоге.
Заметим, что эта функция возвращает также "." и "..". Если этого делать не нужно, то исключить эти значения можно следующим образом:
В качестве примера на рассмотренные функции, давайте создадим скрипт, удаляющий все файлы из каталога c:/temp, к которым не было доступа в течение суток. Функция удаления файлов в этом случае вызывается рекурсивно.
Создание каталогов производится с помощью функции mkdir: bool mkdir ( string dirname, int mode) Эта функция создает каталог с именем dirname и правами доступа mode. В случае неудачи возвращает false. Права доступа задаются только для каталогов UNIX, поскольку в Windows этот аргумент игнорируется. Ниже приведен пример создания каталога test в директории c:/temp.
Удалить каталог можно с помощью функции rmdir: bool rmdir ( string dirname) Теперь удалим только что созданный каталог /test:
Функция rmdir удаляет только пустые каталоги. Для того чтобы удалять непустые каталоги, давайте напишем функцию и удалим каталог c:/temp со всеми вложенными папками и файлами:
При рекурсивном вызове функции не передавайте в качестве аргументов записи "." и "..", указывающие на текущий и родительский каталоги, так как в этом случае вы можете потерять ваши данные. Пропускайте эти записи явным образом при помощи условного оператора.
|
|||||||||||||||||||||||||||||||
| Наверх |