Question

I'm currently using two functions to delete from each folder after 1 minute but as they basically do the same thing (just different folders called). I was wondering if they could be merged into one?

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);
          }
       }
    }
Was it helpful?

Solution 2

Thanks for your answers everyone but I have now sorted it by adding:

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

to my results page which deletes the uploaded image once the thumb is created and removed the function associated with it.

Once again thanks for your answers :)

OTHER TIPS

Pass the folder name as an argument.

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);
          }
       }
    }
function DeleteFromFolder($captchaFolder) {
    $fileTypes     = '*.jpg';
    // and so on
}

If you like, you can add two helper functions

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

To try to do this without editing your structure you can pass a variable into your main function. You can do something like this

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

That should work without making any major changes to your current code base.

EDIT (Adding more of a description for some clarity)

I was assuming that your code was already implemented in some way. If that is the case, a rather clunky solution is like mine above (this will allow the smallest number of edits to be made). Otherwise, you could consolidate this function to just the first one and it will work fine. DeleteFromFolder2() is merely a redirect function.

The function takes an argument $file which is null if not declared when calling the function. If $file == NULL, then it will delete folder1 by default, otherwise, it will attempt to delete the folder specified. I hope that clears things up a bit!

Good luck!
Dennis M.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top