Home  >  Article  >  Backend Development  >  Example to explain how to delete a folder with php

Example to explain how to delete a folder with php

PHPz
PHPzOriginal
2023-04-04 14:29:18541browse

To delete a folder in PHP, usually use recursively to delete, the following are the specific steps:

  1. Open the folder and scan the subdirectory: use opendir()Open the folder and scan the files/folders using the readdir() method. While scanning, check whether each subdirectory is a folder or file and store the paths to multiple levels of subdirectories in an array.

    function deleteFolder($folderPath) {
        if (!is_dir($folderPath)) return false; // 确认路径是一个目录
        $folderIterator = new RecursiveDirectoryIterator($folderPath, RecursiveDirectoryIterator::SKIP_DOTS);
        $iterator = new RecursiveIteratorIterator($folderIterator, RecursiveIteratorIterator::CHILD_FIRST);
        foreach ($iterator as $file) {
            if ($file->isDir()){
                rmdir($file->getRealPath());
            }else{
                unlink($file->getRealPath());
            }
        }
        rmdir($folderPath);
        return true;
    }
  2. Recursively delete all files and folders: In step 1, multiple levels of subdirectory paths are stored. Now, iterate over the array in reverse order, since deleting subfolders of a folder must be performed first.
  3. Delete the root folder: Ultimately, just use the rmdir() function to delete the root folder.

Full code:

function deleteFolder($folderPath) {
    if (!is_dir($folderPath)) return false; // 确认路径是一个目录
    $folderIterator = new RecursiveDirectoryIterator($folderPath, RecursiveDirectoryIterator::SKIP_DOTS);
    $iterator = new RecursiveIteratorIterator($folderIterator, RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($iterator as $file) {
        if ($file->isDir()){
            rmdir($file->getRealPath());
        }else{
            unlink($file->getRealPath());
        }
    }
    rmdir($folderPath);
    return true;
}

Usage example:

$folderPath = "path/to/your/folder/";
deleteFolder($folderPath);
echo "文件夹删除成功!";

Note: This code will directly delete the folder and all its contents without prompting for confirmation. Therefore, make sure you have backed up everything in this folder before using it.

The above is the detailed content of Example to explain how to delete a folder with php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn