Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. PHP
  3. Создание, назначение доступа, удаление и проверка наличия папки в PHP
logo

Создание, назначение доступа, удаление и проверка наличия папки в PHP

11.02.2015

Создание каталога

Для создания папки применяется функция mkdir. Обязательным параметром для этой функции является pathname, где задается путь к создаваемой директории.

mkdir("newfolder");

При таком указании папки, она будет создана в той же директории, из которой был запущен php-скрипт. Если нужно создать каталог в другом месте, можно задать относительный путь к создаваемой папке или указать полный путь от корневой директории сайта.

mkdir("../newfolder"); // на уровень ниже

 

mkdir("/folder1/folder2/newfolder"); // полный путь

В последнем примере обязательным условием будет существование подкаталогов "folder1" и "folder2". Если их не будет, функция, в таком виде не сможет выполнить создание папки и вернет ошибку:

Warning: mkdir() [function.mkdir]: No such file or directory in …

В случае удачного выполнения, функция возвращает значение True. Если пака не была создана, возвращается значение False.

if (mkdir("newfolder"))
echo "Папка успешно создана";
else
echo "Папка не создана";

Но не стоит использовать эту функцию без проверки на наличие папки, так как ошибку о том, что не удалось создать папку, сервер все равно будет выводить.

Назначение прав при создании папки

За назначение прав на создаваемую папку отвечает второй необязательный параметр функции mkdir. По умолчанию, назначаются максимальные привилегии – 0777.

Права назначаются восьмеричным значением с обязательным нулем на первом месте. Не считая первого нуля, числа означают уровни доступа для владельца, для группы владельца, для всех остальных.

0 – доступ закрыт;

1 – доступ для чтения;

2 – доступ на запись;

4 – доступ на выполнение.

Чаще всего права задаются составной суммой, например:

7 – полный доступ (1+2+4);

5 – чтение и выполнение (1+4).

mkdir("newfolder", 0777); // полный доступ для всех

Создание нескольких вложенных поддиректорий

Создать несколько вложенных папок сразу можно, просто задав еще один необязательный логический параметр – recursive.

mkdir("folder1/folder2/newfolder", 0777, True); // полный доступ для всех

В этом случае, если папок "folder1" и "folder2" нет, функция создаст и их, и папку "newfolder". Сообщений об ошибках, если других проблем не возникнет, выведено не будет и функция вернет значение True.

Удаление папки

Пустую папку в PHP можно удалить функцией rmdir. В параметре dirname для нее так же задается полный или относительный путь к удаляемому каталогу:

rmdir("myfolder");

 

rmdir("folder1/folder2/myfolder");

В каждом из указанных случаев удаляется только папка "myfolder". Если папки нет или путь задан некорректно, будет выведена ошибка:

Warning: rmdir(myfolder) [function.rmdir]: No such file or directory in …

Удаление непустой папки

Удаления непустого каталога выполняется путем последовательного удаления вложенных файлов в папке функцией unlink, а затем удаление пустой папки функцией rmdir. Для этого можно использовать подобную функцию:

function my_delete_dir($mypath){
$dir = opendir($mypath);
while (($file = readdir($dir))){
if (is_file($mypath."/".$file))
unlink ($mypath."/".$file);
elseif (is_dir($mypath."/".$file) && ($file != ".") && ($file != ".."))
my_delete_dir ($mypath."/".$file);
}
closedir ($dir);
rmdir ($mypath);
}

my_delete_dir("myfolder"); // вызов функции

Проверка существования каталога

Перед большинством операций с каталогами стоит проверять, существуют ли они. Для этого применяется функция file_exists.

Помимо этого нужно убедиться, что указанный объект именно папка, а не файл - функция is_dir. Проверяемая папка задается относительным или полным путем.

if (file_exists("myfolder"))
echo "Указанная папка существует";
else
echo "Указанной папки нет";

 

if (is_dir("myfolder"))
echo "Указанный объект папка";
else
echo "Указанный объект не папка";

 

Другие материалы:

ID последней записи в базе данных MySQL в PHP


Функция file_exists в PHP, описание и примеры


Функция pathinfo в PHP, описание и примеры


Написать комментарий

Комментарии

В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.


коммент.

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных