En PHP, los archivos de una carpeta se pueden eliminar utilizando varios enfoques y métodos incorporados, como desvincular, DirectoryIterator y DirectoryRecursiveIterator.
Algunos de estos enfoques se explican a continuación:
Enfoque 1:
- Genere una lista de archivos usando el método glob()
- Iterar sobre la lista de archivos.
- Compruebe si el nombre de los archivos es válido.
- Elimine el archivo usando el método unlink() .
Ejemplo:
<?php // PHP program to delete all // file from a folder // Folder path to be flushed $folder_path = "myGeeks"; // List of name of files inside // specified folder $files = glob($folder_path.'/*'); // Deleting all the files in the list foreach($files as $file) { if(is_file($file)) // Delete the given file unlink($file); } ?>
Salida:
Antes de ejecutar el código:
Después de ejecutar el código:
Nota: Los archivos ocultos se pueden incluir en la operación de eliminación de archivos agregando el siguiente código:
$hidden_files = glob($folder_path.'/{, .}*', GLOB_BRACE);
Enfoque 2:
- Genere una lista de archivos usando el método glob() .
- Filtre la lista usando los métodos array_filter() o array_merge() .
- Asigne la lista al método unlink() usando el método array_map() .
Ejemplo:
<?php // PHP program to delete all files from a folder // Deleting all the files inside the given folder array_map('unlink', array_filter( (array) array_merge(glob("myGeeks/*")))); ?>
Enfoque 3:
- Genere una lista de archivos usando DirectoryIterator.
- Iterar sobre la lista de archivos.
- Valide el archivo mientras verifica si el directorio del archivo tiene un punto o no.
- Usando la referencia del método getPathName, elimine el archivo usando el método unlink() .
Ejemplo:
<?php // PHP program to delete all files // from a folder // Folder path to be flushed $folder_path = 'myGeeks/'; // Assigning files inside the directory $dir = new DirectoryIterator(dirname($folder_path)); // Deleting all the files in the list foreach ($dir as $fileinfo) { if (!$fileinfo->isDot()) { // Delete the given file unlink($fileinfo->getPathname()); } } ?>
Enfoque 4:
- Genere una lista de todas las jerarquías de directorios dentro del directorio de carpetas dado usando RecursiveDirectoryIterator
$dir = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); $dir = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST);
- FilesystemIterator::SKIP_DOTS se usa para ignorar los puntos al generar una lista de archivos.
- RecursiveIteratorIterator::CHILD_FIRST se usa para elegir archivos presentes en el directorio raíz.
- Repita la lista de archivos y elimine carpetas y archivos de acuerdo con la especificación.
Ejemplo:
<?php // PHP program to delete all FilesystemIterator // from a folder // Folder path to be flushed $dir = "myGeeks/"; // Assigning files inside the directory $dir = new RecursiveDirectoryIterator( $dir, FilesystemIterator::SKIP_DOTS); // Reducing file search to given root // directory only $dir = new RecursiveIteratorIterator( $dir,RecursiveIteratorIterator::CHILD_FIRST); // Removing directories and files inside // the specified folder foreach ( $dir as $file ) { $file->isDir() ? rmdir($file) : unlink($file); } ?>
Publicación traducida automáticamente
Artículo escrito por Harshit Saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA