19.12.1 Problem
You want to remove a directory and all of its contents,
including subdirectories and their contents.
19.12.2 Solution
On Unix, use rm:
$directory = escapeshellarg($directory);
exec("rm -rf $directory");
On Windows, use rmdir:
$directory = escapeshellarg($directory);
exec("rmdir /s /q $directory");
19.12.3 Discussion
Removing files, obviously, can be dangerous. Be sure to escape
$directory with escapeshellarg( ) so
that you don't delete unintended files.
Because PHP's built-in directory removal function, rmdir(
) , works only on empty
directories, and unlink( ) can't accept shell wildcards, calling a
system program is much easier than recursively looping through all files in a
directory, removing them, and then removing each directory. If an external
utility isn't available, however, you can modify the pc_process_dir( )
function from Section 19.10 to remove each subdirectory.