2016-12-27 3 views
3

PHPを使用しているファイルとそのファイルを含むフォルダの削除に問題があります。私は自分のサーバー上のフォルダと24時間後に自動的にフォルダを含むファイルを削除したい。私は、アップロードされた文書を保存するためのフォルダを作成しています。私もいくつかのコードを試していますが、それは私のために働いていません。どんな助けもありがとう。ありがとう!私がしようと、なぜここ24時間後に自動的にファイルとフォルダを削除する

は次のとおりです。 -

$path = dirname(__FILE__).'/Docs/'.$foldername; 
    if ($handle = opendir($path)) { 

    while (false !== ($filesss = readdir($handle))) { 
     if ((time()-filectime($path.'/'.$filesss)) < 86400) { // 86400 = 60*60*24 

      unlink($path.'/'.$filesss); 


     } 
    } 
    } 

私はこのコードを試してみたが、それは私のために私が望むように動作していません。このコードは、現時点で私のファイルを削除します。 24時間後にこれらのファイルを削除したいのですが、これらのファイルを含むフォルダも24時間後に削除したいと思っています。私が間違っているところを教えてください。

+0

逆のineqailityサインだけかもしれませんか? (time() - filectime()<86400は、24時間より_younger_に該当するファイルについてtrueを返します) – Timurib

答えて

2

Cronファイルを作成し、以下のコードを書きます。

function Delete($path) 
{ 
    if (is_dir($path) === true) { 
     $files = array_diff(scandir($path), array('.', '..')); 

     foreach ($files as $file) 
     { 
      Delete(realpath($path) . '/' . $file); 
     } 

     return rmdir($path); 
    } else if (is_file($path) === true) { 
     return unlink($path); 
    } 

    return false; 
} 
+0

どこで時刻を指定しましたか? –

+0

Cronファイルを作成しなくてももう1つ質問は可能でしょうか? –

+0

cron時間設定深夜12:00 AM –

0
if ((time() - filectime($path.'/'.$filesss)) >= 86400) 

あなたが「今」とファイルが作成された時刻との差が24時間以上、小さくないかどうかを確認する必要があります。

+0

私はすでに自分のコードでそれを持っていることがわかるので、それは動作していません。 –

+1

@PranaySuteあなたは '<'演算子を使用しています。 '> ='を使用して、時差が24h以上であるかどうかを確認します。 –

+0

オハイオ州のよく私はこれを試し、あなたに知らせる! –

関連する問題