unlinkr function recursively deletes all the folders and files in given path by making sure it doesn’t delete the script itself.
function unlinkr($dir, $pattern = "*") { // find all files and folders matching pattern $files = glob($dir . "/$pattern"); //interate thorugh the files and folders foreach($files as $file){ //if it is a directory then re-call unlinkr function to delete files inside this directory if (is_dir($file) and !in_array($file, array('..', '.'))) { echo " opening directory $file "; unlinkr($file, $pattern); //remove the directory itself echo " deleting directory $file "; rmdir($file); } else if(is_file($file) and ($file != __FILE__)) { // make sure you don't delete the current script echo " deleting file $file "; unlink($file); } } }
if you want to delete all files and folders where you place this script then call it as following
//get current working directory $dir = getcwd(); unlinkr($dir, "*");
if you want to just delete the php files then call it as following
unlinkr($dir, "*.php");
you can use any other path to delete the files as well
unlinkr("/home/user/temp", "*");
This will delete all files in home/user/temp directory.
Thank you for good script. Would you be so kind to help me change code that delete script itself. I think that is in this part and ($file != __FILE__)) but my PHP is not very good to change it myself. Thank you