1

我目前正在使用两个函数在 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
}

如果你喜欢,你可以添加两个辅助函数

function DeleteFromFolder1() { return DeleteFromFolder('folder1/'); }
function DeleteFromFolder2() { return DeleteFromFolder('folder2/'); }
于 2011-01-26T00:48:03.700 回答
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/");
}
}

这应该可以在不对您当前的代码库进行任何重大更改的情况下工作。

编辑(为清楚起见添加更多描述)

我假设您的代码已经以某种方式实现。如果是这样的话,一个相当笨重的解决方案就像我上面的那样(这将允许进行最少数量的编辑)。否则,您可以将此功能合并到第一个功能,它会正常工作。DeleteFromFolder2() 仅仅是一个重定向函数。

如果在调用函数时未声明该函数,则该函数接受一个$file为 null 的参数。如果$file == NULL为 ,则默认删除文件夹 1,否则将尝试删除指定的文件夹。我希望这能把事情弄清楚一点!

祝你好运!
丹尼斯 M。

于 2011-01-26T00:50:06.937 回答