2016-08-17 60 views
0

我確定這很簡單,但我沒有得到正確的語法運氣。寫多個擴展的更好方法是什麼?或者這種方式(下)與任何一樣好?PHP刪除文件夾中的多個圖像類型

<?php 
    //Delete all image files in this folder 
    $path = 'files/'; 

    if ($handle = opendir($path)) { 
     while (false !== ($file = readdir($handle))) { 
      if (filectime($file)< (time() - 2419200)) { 
       if (preg_match('/\.png$/i', $file)) { 
        unlink($path.'/'.$file); 
       } 
       if (preg_match('/\.jpg$/i', $file)) { 
        unlink($path.'/'.$file); 
       } 
       if (preg_match('/\.tif$/i', $file)) { 
        unlink($path.'/'.$file); 
       } 
       if (preg_match('/\.gif$/i', $file)) { 
        unlink($path.'/'.$file); 
       } 
      } 
     } 
    } 
?> 
+0

你只需要一個'的preg_match(png格式| JPG格式|的.tif | .gif注意)' – 2016-08-17 03:06:28

+0

我會用'substr',而不是一個正則表達式。它應該更快 – Machavity

回答

0
$extensions = array ('png', 'jpg', 'tif', 'gif'); // add any other extensions to this array 

foreach ($extensions as $extension) { 
    foreach (glob ($path . '/*.' . $extension) as $file) { 
     if (filectime ($file) < (time() - 2419200)) { 
      unlink ($file); 
     } 
    } 
} 
+1

你錯過了時間檢查,你不需要2個循環 – 2016-08-17 03:12:20

+2

1循環:.. glob(「*。{PNG,jpg,tif,gif}」,GLOB_BRACE)'.. – 2016-08-17 03:15:09

相關問題