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

Example to explain how to delete a folder with php

PHPz
Release: 2023-04-04 20:20:02
Original
701 people have browsed it

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;
    }
    Copy after login
    Copy after login
  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;
}
Copy after login
Copy after login

Usage example:

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

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 of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template