php periodically deletes files under the folder of to clean up the cache files
- 2020-05-27 04:38:38
- OfStack
Is there a way to automatically clean up temporary folders?
The following code is a simple php code for periodically cleaning files in a folder.
ps: this code will run until the site is rebooted, so it should only be used to test the local environment. Please do not test on the site.
According to an idea on the Internet, build an flag.txt file and enter 1 or 0 in it. "0" means stop execution, and "1" means continue execution. That way you can start and stop.
php deletes folders and all files under them
Example: delete all ".svn "folders under a folder (including its contents).
The following code is a simple php code for periodically cleaning files in a folder.
ps: this code will run until the site is rebooted, so it should only be used to test the local environment. Please do not test on the site.
<?php
ignore_user_abort(); // When the client is disconnected, you can let the script continue executing in the background
set_time_limit(0); // ignore php.ini Set the script run time limit
$interval = 5*60; // Set the execution cycle in seconds, 5 Minutes for 5*60=300
do{
$dir = "temp/"; // Your temporary directory location
$handle=opendir("{$dir}/");
while (false !== ($file=readdir($handle))) {
if ($file!="." && $file!=".." && !is_dir("{$dir}/{$file}")) {
@unlink ("{$dir}/{$file}");
}
}
closedir($handle); // Close by opendir() The function opens the directory
sleep($interval); // perform 1 After 4 cycles, hibernate $interval Time, the script continues execution after hibernation
}while(true); // Periodically execute scripts
According to an idea on the Internet, build an flag.txt file and enter 1 or 0 in it. "0" means stop execution, and "1" means continue execution. That way you can start and stop.
<?php
$flag = 1; // Set the execution flag to 1 , is executed by default
ignore_user_abort(); // When the client is disconnected, you can let the script continue executing in the background
set_time_limit(0); // ignore php.ini Set the script run time limit
$interval = 5*60; // Set the execution cycle in seconds, 5 Minutes for 5*60=300
do{
$flagfile = "flag.txt"; // Logo placed in file" flag.txt ". " 0 "Stands for stop execution," 1 "Means to continue the execution
if(file_exists($flagfile) && is_readable($flagfile)) { // Read file contents
$fh = fopen($flagfile,"r");
while (!feof($fh)) {
$flag = fgets($fh); // Store logo
}
fclose($fh);
}
$dir = "temp/"; // Your temporary directory location
$handle=opendir("{$dir}/");
while (false !== ($file=readdir($handle))) {
if ($file!="." && $file!=".." && !is_dir("{$dir}/{$file}")) {
@unlink ("{$dir}/{$file}");
}
}
closedir($handle); // Close by opendir() The function opens the directory
sleep($interval); // perform 1 After 4 cycles, hibernate $interval Time, the script continues execution after hibernation
}while($flag);
php deletes folders and all files under them
<?
function deldir($dir) {
// First, delete the files in the directory:
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
// Delete current folder:
if(rmdir($dir)) {
return true;
} else {
return false;
}
}
?>
Example: delete all ".svn "folders under a folder (including its contents).
<?php
function delsvn($dir) {
$dh=opendir($dir);
// Find out all ".svn " Folder:
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(is_dir($fullpath)) {
if($file==".svn"){
delsvndir($fullpath);
}else{
delsvn($fullpath);
}
}
}
}
closedir($dh);
}
function delsvndir($svndir){
// First, delete the files in the directory:
$dh=opendir($svndir);
while($file=readdir($dh)){
if($file!="."&&$file!=".."){
$fullpath=$svndir."/".$file;
if(is_dir($fullpath)){
delsvndir($fullpath);
}else{
unlink($fullpath);
}
}
}
closedir($dh);
// Delete directory folder
if(rmdir($svndir)){
return true;
}else{
return false;
}
}
$dir=dirname(__FILE__);
//echo $dir;
delsvn($dir);
?>