1

私は現在、1分後に各フォルダーから削除するために2つの関数を使用していますが、基本的に同じことを行うためです(異なるフォルダーと呼ばれるだけです)。それらを1つに統合できるかどうか疑問に思いましたか?

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);
          }
       }
    }
4

4 に答える 4

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);
          }
       }
    }
于 2011-01-26T00:48:44.373 に答える
1

みなさんの回答ありがとうございますが、次のように並べ替えました。

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

サムが作成され、それに関連付けられた関数が削除されると、アップロードされた画像を削除する私の結果ページに移動します。

もう一度あなたの答えに感謝します:)

于 2011-01-26T01:08:57.057 に答える
0
function DeleteFromFolder($captchaFolder) {
    $fileTypes     = '*.jpg';
    // and so on
}

必要に応じて、2つのヘルパー関数を追加できます

function DeleteFromFolder1() { return DeleteFromFolder('folder1/'); }
function DeleteFromFolder2() { return DeleteFromFolder('folder2/'); }
于 2011-01-26T00:48:03.700 に答える
0

構造体を編集せずにこれを実行するには、変数をmain関数に渡すことができます。あなたはこのようなことをすることができます

    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/");
}
}

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

編集(わかりやすくするために説明を追加)

私はあなたのコードがすでに何らかの方法で実装されていると仮定していました。その場合、かなり不格好な解決策は上記の私のようなものです(これにより、編集の数を最小限に抑えることができます)。それ以外の場合は、この関数を最初の関数に統合すると、正常に機能します。DeleteFromFolder2()は単なるリダイレクト関数です。

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

幸運を!
デニスM。

于 2011-01-26T00:50:06.937 に答える