Видалення каталогу з файлами в php
У попередній статті ми з Вами розбирали функції для роботи з каталогами в PHP, і там я познайомив Вас з функцією rmdir (), яка видаляє каталог. Однак, я сказав, що таким способом вийде видалити тільки порожню директорію, а ось як видалити каталог з файлами, Ви дізнаєтеся зараз.
Принцип дуже простий: щоб видалити каталог з файлами, треба видалити спочатку всі файли, а також всі підкаталоги. Усередині підкаталогів можуть бути також файли і інші підкаталоги, їх також треба очистити. Загалом, складність полягає в тому, що глибина каталогів може бути дуже великий. І очевидно, що напрошується рекурсія - виклик функції всередині самої себе.
Незважаючи на гадану складність алгоритму, реалізація дуже проста і прозора:
lt ;?php
function removeDirectory($ dir){
if($ objs = glob($ dir."/ *")){
foreach($ objs as $ obj){
is_dir($ obj)? removeDirectory($ obj): unlink($ obj) -
}
}
rmdir($ dir) -
}
?gt;
Постараюся пояснити зрозумілою мовою алгоритм роботи даної функції. Насамперед ми отримуємо список всіх файлів усередині заданої директорії. Якщо їх там немає, то відразу видаляємо її. Якщо вони є, то починаємо по-черзі перебирати. Якщо елемент є файлом, то просто видаляємо його (unlink ($ obj)). Якщо ж це каталог, то викликаємо знову нашу функцію, передавши цей каталог. Це і є рекурсія: функція викликає сама себе. Після виклику функцією самої себе все починається заново, але вже з іншого Директорією. У ній також видаляються всі файли, а всі її директорії відправляються знову в цю функцію. Коли все директорії і файли видалені, у нас віддаляється вже порожній каталог.
Я Вам скажу так, даний алгоритм не так корисний з точки зору практики (не так часто доводиться видаляти каталоги з файлами в PHP), Скільки корисний для розвитку Вашого мислення. Це дуже простий алгоритм і вирішує він вельми і вельми складне завдання. Тому вчіться складати алгоритми - це найголовніше в будь-якій мові програмування.
- Команда rmdir (rd) - видалити каталог файлової системи windows.
- Команда compact - відображення або зміна параметрів стиснення файлів в розділах ntfs windows.
- Видалення програм linux
- Як видалити користувача в linux
- Як видалити файл через термінал linux
- Як видалити акаунт google в android
- Як видалити анімацію gif в php
- Команда xcopy - копіювання файлів і каталогів.
- Popd - перейти в каталог, шлях якого був збережений при виконанні команди pushd.
- Команда md (mkdir) - створити каталог
- Команда mklink - створення символічного посилання на файл або каталог.
- Команда append - приєднати каталог до поточного
- Загальні папки linux
- Команда del (erase)
- Pushd - запам`ятати поточний каталог і перейти в зазначений.
- Команда move - перейменування або переміщення файлів і каталогів
- Команда find в linux
- Реалізація хто онлайн
- Nodejs. Створення та видалення директорій.
- Дерево директорії на php
- Рекурсія в php