function delete_dirorfile($dirorfile) { // -------------- // This function deletes a local directory recursively // Credit goes to itportal at gmail dot com, 17-Jul-2006 05:29 // -------------- // THIS FUNCTION IS ALMOST IDENTICAL TO THE ONE IN /modules/install/net2ftp_installer.txt // Difference: this one only runs in execute mode, doesn't echo any output and returns a value. // $return = true if all went well, false if there was an error somewhere. // -------------- $result = true; if (is_dir($dirorfile)) { $directory = $dirorfile; if (substr($dir, -1, 1) == "/") { $directory = substr($directory, 0, strlen($directory) - 1); } if ($handle = opendir("{$directory}")) { while (false !== ($item = readdir($handle))) { if ($item != "." && $item != "..") { if (is_dir("{$directory}/{$item}")) { $delete_dirorfile_result = delete_dirorfile("{$directory}/{$item}", $mode); $result = $result && $delete_dirorfile_result; } else { $unlink_result = unlink("{$directory}/{$item}"); $result = $result && $unlink_result; } } } closedir($handle); $rmdir_result = rmdir($directory); $result = $result && $rmdir_result; } } elseif (is_file($dirorfile)) { $file = $dirorfile; $unlink_result = unlink($file); $result = $result && $unlink_result; } return $result; }
function delete_dirorfile($dirorfile, $mode) { // -------------- // This function deletes a local directory recursively // Credit goes to itportal at gmail dot com, 17-Jul-2006 05:29 // -------------- if ($mode != "execute") { $mode = "simulate"; } if (is_dir($dirorfile)) { $directory = $dirorfile; if (substr($dir, -1, 1) == "/") { $directory = substr($directory, 0, strlen($directory) - 1); } if ($handle = opendir("{$directory}")) { while (false !== ($item = readdir($handle))) { if ($item != "." && $item != "..") { if (is_dir("{$directory}/{$item}")) { if ($mode == "execute") { echo "Processing directory {$directory}/{$item}<br />\n"; } delete_dirorfile("{$directory}/{$item}", $mode); } else { if ($mode == "execute") { unlink("{$directory}/{$item}"); echo "Removed file {$directory}/{$item}<br />\n"; } elseif ($mode == "simulate") { echo "File {$directory}/{$item}<br />\n"; } } } } closedir($handle); if ($mode == "execute") { rmdir($directory); echo "Removed directory {$directory}<br />\n"; } elseif ($mode == "simulate") { echo "Directory {$directory}<br />\n"; } } } elseif (is_file($dirorfile)) { $file = $dirorfile; if ($mode == "execute") { unlink($file); echo "Removed file {$file}<br />\n"; } elseif ($mode == "simulate") { echo "File {$file}<br />\n"; } } else { if ($mode == "execute") { echo "Could not remove {$dirorfile}<br />\n."; } elseif ($mode == "simulate") { echo "Entry {$dirorfile} can't be removed.<br />\n"; } } }