ホームページ  >  記事  >  バックエンド開発  >  PHP はフォルダー内のファイルを定期的に削除します (キャッシュ ファイルのクリア)_PHP チュートリアル

PHP はフォルダー内のファイルを定期的に削除します (キャッシュ ファイルのクリア)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:14:16750ブラウズ

それでは、一時フォルダーを自動的にクリーンアップする方法はあるのでしょうか?

次のコードは、フォルダー内のファイルを定期的にクリーンアップする単純な PHP コードです。
ps: このコードは、Web サイトが再起動されない場合は実行され続けるため、ローカル環境のテストにのみ使用されます。Web サイトではテストしないでください。

コードをコピーします コードは次のとおりです:

ignore_user_abort() //クライアントが切断されても、スクリプトはバックグラウンドで実行を続行できます
set_time_limit(0); //php.ini を無視します スクリプトの実行時間制限を設定します
$interval = 5*60; //実行時間を秒単位で設定します。5 分は 5*60=300 です
do{
$dir = "temp/" / /一時ディレクトリの場所
$handle=opendir("{$dir}/");
while (false !== ($file=readdir($handle))) {
if ($file!="." && $file!= ".." && !is_dir("{$dir}/{$file}")) {
@unlink ("{$dir}/{$file}");
}
}
closedir( $handle); //opendir() 関数によって開かれたディレクトリを閉じます
sleep($interval); //サイクルの実行後、$interval 時間スリープし、スリープ終了後もスクリプトは実行を続けます
} while(true); //スクリプトの定期実行


インターネットで見つけたアイデアを基に、flag.txt ファイルを作成し、そこに 1 または 0 を入力します。「0」は実行を停止することを意味します。 "は実行を継続することを意味します。このようにして、起動と停止を行うことができます。
コードをコピー コードは次のとおりです:

$flag = 1; //実行フラグを 1 に設定します。デフォルトは実行です
ignore_user_abort(); //接続が切断されている場合は、スクリプトをバックグラウンドで実行し続けます
set_time_limit(0); //php.ini で設定されたスクリプトの実行時間制限を無視します
$interval = 5*60; //実行時間を秒単位で設定します。 5分は5*60=300です
do{
$flagfile = "flag.txt"; //フラグはファイル「flag.txt」に配置されます。 "0" は実行停止を意味し、"1" は実行継続を意味します
if(file_exists($flagfile) && is_readable($flagfile)) { //ファイルの内容を読み取ります
$fh = fopen($flagfile,"r") ;
while (!feof($fh)) {
$flag = fgets($fh) //ストレージフラグ
}
$dir = "temp/";ディレクトリの場所
$handle=opendir("{$dir}/");
while (false !== ($file=readdir($handle))) {
if ($file!="." && $file! = ".." && !is_dir("{$dir}/{$file}")) {
@unlink ("{$dir}/{$file}")
}
}
closedir($handle); ; // opendir() 関数によって開かれたディレクトリを閉じる
sleep($interval); // サイクルの実行後、$interval 時間スリープし、スリープ終了後もスクリプトは実行を継続します
}while($flag );



php フォルダーとその下のすべてのファイルを削除します


コードをコピーします
コードは次のとおりです: function deldir($dir) {
/ /最初にディレクトリ内のファイルを削除します:
$dh =opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!=".. ") {
$fullpath=$dir."/ ".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
// 現在のフォルダーを削除します:
if(rmdir($dir)) {
return true;
} else {


?例: 「.svn」フォルダーをすべて削除します (中身も含めて削除されます)



コードは次のとおりです:

function delsvn($dir) {
$dh=opendir($dir); //すべての「.svn」フォルダーを検索します: 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){
//最初にディレクトリ内のファイルを削除します:
$dh=opendir ($svndir);
while ($file=readdir($dh)){
if($file!="."&&$file!=".."){
$fullpath=$svndir."/"。 $file;
if(is_dir ($fullpath)){
delsvndir($fullpath);
unlink($fullpath);
closedir($dh);
if(rmdir($svndir)){
return true;
}
}

$dir=dirname(__FILE__)
//echo $dir;
?>

www.bkjia.com本当http://www.bkjia.com/PHPjc/326328.html技術記事それでは、一時フォルダーを自動的にクリーンアップする方法はあるのでしょうか? 次のコードは、フォルダー内のファイルを定期的にクリーンアップする単純な PHP コードです。 ps: ウェブサイトが再起動されない場合、このコードは実行され続けます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。