Рекурсивное удаление папок от имени веб-сервера на PHP

27.05.2011 12:44 / Артём Волк / 763 просмотра / ...
PHP

На серверах, где PHP-скрипты запускаются от одного пользователя, файлы по FTP создаются от другого, а доступ по SSH осуществляется от третьего (хорошо, что всё чаще используется Apache-MPM-ITK) иногда бывает нужно удалить какие-нибудь временные файлы. Более правильное решение, наверное, использование PHP Shell или, если все пользователи относятся к одной группе, выставить нужные права на файлы для группы.

После того, как в третий раз пришлось писать такой скриптик, решил его положить сюда :).

// Code from http://www.php.net/manual/en/function.rmdir.php#98622
function rrmdir($dir) {
   if (is_dir($dir)) {
	 $objects = scandir($dir);
	 foreach ($objects as $object) {
	   if ($object != "." && $object != "..") {
		 if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
	   }
	 }
	 reset($objects);
	 rmdir($dir);
   }
 } 

$dir = dirname(__FILE__) . '/backup';

rrmdir($dir);