2011-01-26 76 views
0

我目前使用兩個函數來刪除每個文件夾後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); 
      } 
     } 
    } 

回答

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

傳遞文件夾名稱作爲參數。

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

這應該沒有任何重大的變化,以當前的代碼庫。

編輯(對於某些清晰度增加更多描述的)

我假設你的代碼是在某種程度上已經實現。如果是這樣,一個相當笨拙的解決方案就像我的上面(這將允許進行最少數量的編輯)。否則,你可以將這個函數合併到第一個函數中,並且它會正常工作。 DeleteFromFolder2()僅僅是一個重定向函數。

函數採用參數$file,如果在調用函數時未聲明,則該參數爲null。如果$file == NULL,則默認會刪除folder1,否則會嘗試刪除指定的文件夾。我希望能夠清理一些東西!

祝你好運!
丹尼斯M.

+0

感覺有點好奇。基本上具有幾乎相同名稱的相同功能,但一個接受一個參數,一個不接受?如果某人使用其他`$ file`而不是`null`或`folder2 /`(例如錯字),會發生什麼? (提示:這將刪除當前工作目錄下的任何東西!) – KingCrunch 2011-01-26 00:52:28

相關問題