30分ごとに1時間以上経過したファイルをサーバー上のフォルダでチェックしたいので、それを行うためにcronジョブを設定します。私はPHPにかなり新しいので、私は親/ターゲットディレクトリを削除しないソリューションを見つけるためにちょっとブラウズしなければなりませんでした。1時間未満のファイルを削除しないでください
<?php
deleteContent("/var/www/html/downloads/");
function deleteContent($path){
try{
$iterator = new DirectoryIterator($path);
foreach ($iterator as $fileinfo) {
if($fileinfo->isDot())continue;
if($fileinfo->isDir()){
if(deleteContent($fileinfo->getPathname())){
if((time()-filectime($fileinfo->getPathname())) < 600)
{
@rmdir($fileinfo->getPathname());
}
}
}
if($fileinfo->isFile()){
if((time()-filectime($fileinfo->getPathname())) < 600)
{
@unlink($fileinfo->getPathname());
}
}
}
} catch (Exception $e){
// write log
return false;
}
return true;
}
?>
if((time()-filectime($fileinfo->getPathname())) < 600)
は私の時間の問題への解決策を見つけることの私のアプローチだったことに注意してください。
スクリプトは1時間未満のフォルダやファイルを削除してはいけませんので、私が今までに持っていた時間を差し引いて、ファイル/フォルダを最後に変更して600秒と比較しました10分)だけテスト目的のために。
悲しいことに、悲しいことに、悲しいことに、悲しいことに、スクリプトは作成された時点にかかわらずすべてのファイルを削除します。
私は何か間違っているのですか、誰かに別のアプローチがありますか?
おかげ
time()とfilectimの値を出力するe($ fileinfo-> getPathname()関数を呼び出し、それらをチェックアウトします。 – Naga