Курс — «Программирование на PHP8 для начинающих» — #21 Работа с файлами и директориями. Работа с директориями
Здравствуйте, дорогие друзья.
Работа с директориями является важной частью управления файловой системой в веб-приложениях. PHP предоставляет множество функций для создания, удаления, переименования и перебора директорий. В этом разделе мы рассмотрим основные операции с директориями.
Создание директорий
Для создания новой директории используется функция mkdir()
. Эта функция принимает два аргумента: путь к новой директории и права доступа (необязательно).
1 2 3 4 5 6 7 8 9 |
<?php $directory = 'newdir'; if (!is_dir($directory)) { mkdir($directory, 0777); // 0777 означает полный доступ для всех echo "Директория создана успешно."; } else { echo "Директория уже существует."; } ?> |
Удаление директорий
Для удаления директории используется функция rmdir()
. Эта функция принимает один аргумент: путь к директории, которую нужно удалить.
1 2 3 4 5 6 7 8 9 |
<?php $directory = 'newdir'; if (is_dir($directory)) { rmdir($directory); echo "Директория удалена успешно."; } else { echo "Директория не существует."; } ?> |
Переименование директорий
Для переименования директории используется функция rename()
. Эта функция принимает два аргумента: текущий путь к директории и новый путь.
1 2 3 4 5 6 7 8 9 10 |
<?php $oldDirectory = 'newdir'; $newDirectory = 'renameddir'; if (is_dir($oldDirectory)) { rename($oldDirectory, $newDirectory); echo "Директория переименована успешно."; } else { echo "Директория не существует."; } ?> |
Перебор содержимого директории
Для перебора содержимого директории можно использовать функции opendir()
, readdir()
и closedir()
. Эти функции позволяют открыть директорию, читать ее содержимое и закрыть директорию.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $directory = 'uploads'; if (is_dir($directory)) { if ($dir = opendir($directory)) { while (($file = readdir($dir)) !== false) { if ($file != '.' && $file != '..') { echo "Файл: " . $file . "<br>"; } } closedir($dir); } else { echo "Не удалось открыть директорию."; } } else { echo "Директория не существует."; } ?> |
Рекурсивное перечисление директорий
Для рекурсивного перечисления директорий можно использовать функцию RecursiveDirectoryIterator
и RecursiveIteratorIterator
.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $directory = 'uploads'; if (is_dir($directory)) { $iterator = new RecursiveDirectoryIterator($directory); foreach (new RecursiveIteratorIterator($iterator) as $file) { if ($file->isFile()) { echo "Файл: " . $file->getPathname() . "<br>"; } } } else { echo "Директория не существует."; } ?> |
Пример полного цикла работы с директориями:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php // Создание директории $directory = 'newdir'; if (!is_dir($directory)) { mkdir($directory, 0777); echo "Директория создана успешно.<br>"; } else { echo "Директория уже существует.<br>"; } // Переименование директории $newDirectory = 'renameddir'; if (is_dir($directory)) { rename($directory, $newDirectory); echo "Директория переименована успешно.<br>"; } else { echo "Директория не существует.<br>"; } // Перебор содержимого директории $directory = 'uploads'; if (is_dir($directory)) { if ($dir = opendir($directory)) { while (($file = readdir($dir)) !== false) { if ($file != '.' && $file != '..') { echo "Файл: " . $file . "<br>"; } } closedir($dir); } else { echo "Не удалось открыть директорию.<br>"; } } else { echo "Директория не существует.<br>"; } // Рекурсивное перечисление директорий if (is_dir($directory)) { $iterator = new RecursiveDirectoryIterator($directory); foreach (new RecursiveIteratorIterator($iterator) as $file) { if ($file->isFile()) { echo "Файл: " . $file->getPathname() . "<br>"; } } } else { echo "Директория не существует.<br>"; } // Удаление директории if (is_dir($newDirectory)) { rmdir($newDirectory); echo "Директория удалена успешно.<br>"; } else { echo "Директория не существует.<br>"; } ?> |
Работа с директориями является важной частью управления файловой системой в веб-приложениях. PHP предоставляет множество функций для создания, удаления, переименования и перебора директорий, что делает его мощным инструментом для создания различных приложений.
На этом все. Всем хорошего дня!
Цикл статей по курсу — «Программирование на PHP8 для начинающих».