Работа с папками в php. Создание, удаление, назначение прав

Работа с папками в php. Введение

Работа с папками в php. Создание, удаление, назначение правСовсем недавно я писал статью о том, как можно как работать с файлами в php. Немного подумав, я решил добавить еще и несколько небольших кусочков кода, которые покажут работу с папками. Как и в статье о работе с файлами, эта статья тоже будет дополняться со временем.

Работа с папками в php. Создание

// создать папку
$folder = '/new_folder'; // путь и имя новой папки
$result = mkdir($folder); // создание папки
if($result){
	echo "Папка создана";	
}else{
	echo "Папка НЕ создана";
}

Работа с папками в php. Удаление

Обратите внимание, что таким образом можно удалить, только пустую папку

// удалить папку
$folder = '/new_folder'; // путь до папки
$result = rmdir($path . $folder); // удаление папки
if($result){
	echo "Папка удалена";	
}else{
	echo "Папка НЕ удалена";
}

Для удаления папки, со всеми содержащимися внутри нее файлами, можно использовать следующий код, который основан на работе рекурсивной функции:

// удаление папки со всеми вложенными файлами и подпапками
$folder = '/new_folder'; // имя новой папки
remove_folder($folder); // удаление

// рекурсивная функция
function remove_folder($folder) {
	// получаем все файлы из папки
	if ($files = glob($folder . "/*")) {
		// удаляем по одному
		foreach($files as $file) {
			if(is_dir($file)){
				// если попалась папка, то удаляем ее
				remove_folder($file); 
			}else{
				// если попался файл
				unlink($file);
			}
		}
	}
	// удаляем пустую папку
	rmdir($folder);
}	 

Работа с папками в php. Назначение прав

Задать права на папку можно, сразу при ее создании, следующим образом:

$folder = '/new_folder'; // путь и имя новой папки
mkdir($folder, 0777); // создание папки, где 0777 - права

Или же, можно задать права на ранее созданную папку:

$folder = '/new_folder';
chmod($folder, 0777);

На этом пока все.

Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*