title besides title

 

Sunday, November 25, 2012

PHP : Directories - [19.12] Removing a Directory and Its Contents

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.