Deleting directories

bool rmdir ( string dirname [, resource context])

PHP has the function rmdir() that takes a directory name as its only parameter and will delete the specified directory. However, there is a minor catch - the directory must be empty otherwise the call will fail. There is not any functionality in PHP to allow you to delete non-empty directories, which means you need to resort to more cunning methods - many people use complex scripts to go through each directory deleting files as they go until finally it is empty, then using rmdir().

I would not recommend that - a far easier method is simply to execute the local directory-deleting program, e.g. "deltree" on Windows, or "rm -rf" on Unix. However, blindly deleting whole directories using scripts is not recommended - if you are sure you want a directory and all its subdirectories gone, check over it one last time then delete it by hand.


Want to learn PHP 7?

Hacking with PHP has been fully updated for PHP 7, and is now available as a downloadable PDF. Get over 1200 pages of hands-on PHP learning today!

If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!

Next chapter: One last directory function >>

Previous chapter: Working with directories

Jump to:


Home: Table of Contents

Copyright ©2015 Paul Hudson. Follow me: @twostraws.