read not from files empty directories deletedir delete php directory delete-file

php - not - Supresión del contenido del directorio y los contenidos del Subdirectorio



rm php (1)

Puede usar RecursiveDirectoryIterator para listar todos los archivos y carpetas y luego eliminarlos. Tenga en cuenta que debe usar RecursiveIteratorIterator::CHILD_FIRST para que los archivos se eliminen antes de la carpeta.

$dir = __DIR__ . "/test"; $di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); $ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST); foreach ( $ri as $file ) { $file->isDir() ? rmdir($file) : unlink($file); }

He configurado algunos PHP para eliminar un directorio, sus contenidos y cualquier subdirectorio y su contenido ... Soy nuevo en PHP, así que definitivamente estoy haciendo algo INCORRECTO o estoy haciendo algo de la manera más ineficiente.

Buscando algunas referencias o sugerencias sobre cómo hacer esto mejor ...

Por cierto, este código funciona bien. Usando PHP 5.3.8.

chmod($main_dir, 0755); if ($handle = opendir($main_dir)) { while (false !== ($entry = readdir($handle))) { $absolute_path = $main_dir.''/''.$entry; if ($entry != "." && $entry != "..") { chmod($absolute_path, 0755); unlink($absolute_path); //check if any folders exist, then delete files within if (file_exists($absolute_path) && is_dir($absolute_path)) { if ($child_handle = opendir($absolute_path)) { while (false !== ($child_entry = readdir($child_handle))) { $child_absolute_path = $absolute_path.''/''.$child_entry; if ($child_entry != "." && $child_entry != "..") { chmod($child_absolute_path, 0755); unlink($child_absolute_path); } } closedir($child_handle); } } rmdir($absolute_path); } } closedir($handle); } rmdir($main_dir);

¿Alguna idea? ¡Muy apreciado! Estoy usando PHP 5.3.8