2011-01-26 8 views
0

私は現在、1分後に各フォルダから2つの機能を使用していますが、基本的に同じことをしています。彼らが1つに合併できるかどうか疑問に思っていましたか?基本的に同じことを行う2つの機能をマージする

function DeleteFromFolder1() { 
    $captchaFolder = 'folder1/'; 
    $fileTypes  = '*.jpg'; 
    $expire_time = 1; 
    foreach(glob($captchaFolder . $fileTypes) as $Filename) { 
    $FileCreationTime = filectime($Filename); 
    $FileAge = time() - $FileCreationTime; 

if($FileAge > ($expire_time * 60)) 
    { 
    unlink($Filename); 
      } 
     } 
    } 

function DeleteFromFolder2() { 
    $captchaFolder = 'folder2/'; 
    $fileTypes  = '*.jpg'; 
    $expire_time = 1; 
    foreach(glob($captchaFolder . $fileTypes) as $Filename) { 
    $FileCreationTime = filectime($Filename); 
    $FileAge = time() - $FileCreationTime; 

if($FileAge > ($expire_time * 60)) 
    { 
    to ($Filename); 
      } 
     } 
    } 

答えて

1

あなたの答えのみんなのおかげで、私は今、追加することによって、それをソートしています

unlink(path/to/temp/image.jpg); 

を親指が作成され、関連付けられた機能を削除されたら、アップロードされた画像を削除し、私の結果ページへそれ。

もう一度お返事いただきありがとうございます。

0
function DeleteFromFolder($captchaFolder) { 
    $fileTypes  = '*.jpg'; 
    // and so on 
} 

あなたが好きなら、あなたは

function DeleteFromFolder1() { return DeleteFromFolder('folder1/'); } 
function DeleteFromFolder2() { return DeleteFromFolder('folder2/'); } 
1

引数としてフォルダ名を渡す2つのヘルパー関数を追加することができます。

function DeleteFromFolder($captchaFolder) { 
    $fileTypes  = '*.jpg'; 
    $expire_time = 1; 
    foreach(glob($captchaFolder . $fileTypes) as $Filename) { 
    $FileCreationTime = filectime($Filename); 
    $FileAge = time() - $FileCreationTime; 

if($FileAge > ($expire_time * 60)) 
    { 
    unlink($Filename); 
      } 
     } 
    } 
0

構造を編集せずにこれを行うには、メイン関数に変数を渡すことができます。このようなことができます

function DeleteFromFolder1($dir=NULL) { 
     if($dir == NULL) 
      $captchaFolder = 'folder1/'; 
     else 
      $captchaFolder = $dir; 
     $fileTypes  = '*.jpg'; 
     $expire_time = 1; 
     foreach(glob($captchaFolder . $fileTypes) as $Filename) { 
     $FileCreationTime = filectime($Filename); 
     $FileAge = time() - $FileCreationTime; 

    if($FileAge > ($expire_time * 60)) 
     { 
     unlink($Filename); 
     } 
    } 
    } 

function DeleteFromFolder2() { 
    DeleteFromFolder1("folder2/"); 
} 
} 

現在のコードベースに大きな変更を加えることなく動作するはずです。

EDIT私はあなたのコードは既にいくつかの方法で実施されたと仮定した

(いくつかの明確化のために記述の多くを追加します)。そうであれば、上記のようなやっかいな解決策があります(最小限の編集が可能になります)。それ以外の場合は、この関数を最初の関数だけに統合するとうまくいきます。 DeleteFromFolder2()は単なるリダイレクト関数です。

この関数は、関数を呼び出すときに宣言されていない場合はnullである$fileという引数をとります。 $file == NULLの場合、デフォルトでfolder1が削除されます。削除されていない場合、指定されたフォルダが削除されます。私は少し物事をクリアすることを願っています!

幸運を祈る!
デニスM.

+0

少し気になります。基本的にはほぼ同じ名前の同じ機能がありますが、引数とそれ以外のものを受け入れますか?誰かが 'null 'や' folder2/'(例:typo)以外の' $ファイル'を使うとどうなりますか? (ヒント:これは現在の作業ディレクトリの下のものを削除します!) – KingCrunch

+0

私は説明を少し更新しました。うまくいけばそれを明確にすることができます。 – RageD

関連する問題