Функция RDir рекурсивно удаляет паку, т.е. удаляет саму папку, а также все подпапки и файлы находящиеся в ней.
Ниже привожу код функции с комментариями:
function RDir( $path ) {
// если путь существует и это папка
if ( file_exists( $path ) AND is_dir( $path ) ) {
// открываем папку
$dir = opendir($path);
while ( false !== ( $element = readdir( $dir ) ) ) {
// удаляем только содержимое папки
if ( $element != '.' AND $element != '..' ) {
$tmp = $path . '/' . $element;
chmod( $tmp, 0777 );
// если элемент является папкой, то
// удаляем его используя нашу функцию RDir
if ( is_dir( $tmp ) ) {
RDir( $tmp );
// если элемент является файлом, то удаляем файл
} else {
unlink( $tmp );
}
}
}
// закрываем папку
closedir($dir);
// удаляем саму папку
if ( file_exists( $path ) ) {
rmdir( $path );
}
}
}
Пример использования:
$dir = $_SERVER['DOCUMENT_ROOT'] . '/example'; RDir( $dir );
RDir( $_SERVER['DOCUMENT_ROOT']. '/example' );
RDir( $_SERVER['DOCUMENT_ROOT']. '/example2' );