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