A simple PHP function to delete files older than a given age. Very handy to rotate backup or log files, for example...
<?php | |
/** | |
* A simple function that uses mtime to delete files older than a given age (in seconds) | |
* Very handy to rotate backup or log files, for example... | |
* | |
* $dir String whhere the files are | |
* $max_age Int in seconds | |
* return String[] the list of deleted files | |
*/ | |
function delete_older_than($dir, $max_age) { | |
$list = array(); | |
$limit = time() - $max_age; | |
$dir = realpath($dir); | |
if (!is_dir($dir)) { | |
return; | |
} | |
$dh = opendir($dir); | |
if ($dh === false) { | |
return; | |
} | |
while (($file = readdir($dh)) !== false) { | |
$file = $dir . '/' . $file; | |
if (!is_file($file)) { | |
continue; | |
} | |
if (filemtime($file) < $limit) { | |
$list[] = $file; | |
unlink($file); | |
} | |
} | |
closedir($dh); | |
return $list; | |
} | |
// An example of how to use: | |
$dir = "/my/backups"; | |
$to = "my@email.com"; | |
// Delete backups older than 7 days | |
$deleted = delete_older_than($dir, 3600*24*7); | |
$txt = "Deleted " . count($deleted) . " old backup(s):\n" . | |
implode("\n", $deleted); | |
mail($to, "Backups cleanup", $txt); |
This comment has been minimized.
This comment has been minimized.
this is great, thank you very much. |
This comment has been minimized.
This comment has been minimized.
Looks great. |
This comment has been minimized.
This comment has been minimized.
How can I delete specific extension files? |
This comment has been minimized.
This comment has been minimized.
It worked flawlessly, thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Thank you for this script. its works like charm.