So is there a way to automatically clean up temporary folders?
The following code is a simple PHP code that regularly cleans files in a folder.
ps: This code will continue to be executed if the website is not restarted, so it is only used for local environment testing, please do not test on the website.
Copy code The code is as follows:
ignore_user_abort(); //When the client is disconnected , allowing the script to continue executing in the background
set_time_limit(0); //Ignore the script running time limit set by php.ini
$interval = 5*60; //Set the execution period in seconds, 5 minutes is 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); //closed by the opendir() function Open directory
sleep($interval); //After executing a cycle, sleep for $interval time, and the script continues to execute after the sleep is over
}while(true); //Periodic execution of the script
Based on an idea found on the Internet, create a flag.txt file and enter 1 or 0 in it. "0" means to stop execution, and "1" means to continue execution. This way it can be started and stopped.
Copy code The code is as follows:
$flag = 1; //Set the execution flag Is 1, the default is to execute
ignore_user_abort(); //When the client is disconnected, the script can continue to execute in the background
set_time_limit(0); //Ignore the script running time limit set by php.ini
$interval = 5*60; //Set the execution period in seconds, 5 minutes is 5*60=300
do{
$flagfile = "flag.txt"; //The flag is placed in the file" flag.txt". "0" means to stop execution, "1" means to continue execution
if(file_exists($flagfile) && is_readable($flagfile)) { //Read file content
$fh = fopen($flagfile,"r ");
while (!feof($fh)) {
$flag = fgets($fh); //Storage flag
}
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 the directory opened by the opendir() function
sleep($interval); //After executing a cycle, sleep for $interval time. After the sleep is over, the script continues to execute
}while($flag);
php deletes the folder and its files Fold all files Copy the code The code is as follows:
function deldir ($dir) {
//Delete the files in the directory first:
$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 the current folder :
if(rmdir($dir)) {
return true;
} else {
return false;
}
}
?>
Example: Delete all ".svn" folders under a certain folder (including their contents).
Copy code The code is as follows:
function delsvn($dir) {
$dh=opendir($dir);
//Find 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){
//Delete the files in the directory first:
$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);
?>
http://www.bkjia.com/PHPjc/326328.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326328.htmlTechArticleSo is there a way to automatically clean up the temporary folder? The following code is a simple PHP code that regularly cleans files in a folder. ps: This code will continue to be executed if the website is not restarted...