2014-09-10 75 views
0

我有以下PHP代碼來列出目錄文件夾中的數據,我的問題是如何列出最近三天的值? 其次,只是問,但有可能爲此代碼添加分頁?列出最近3天使用PHP的目錄中的項目

<?PHP 

    function getFileList($dir) 
    { 
    // array to hold return value 
    $retval = array(); 

    // add trailing slash if missing 
    if(substr($dir, -1) != "/") $dir .= "/"; 

    // open pointer to directory and read list of files 
    $d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading"); 
    while(false !== ($entry = $d->read())) { 
     // skip hidden files 
     if($entry[0] == ".") continue; 
     if(is_dir("$dir$entry")) { 
     $retval[] = array(
      "name" => "$dir$entry/", 
      "type" => filetype("$dir$entry"), 
      "size" => 0, 
      "lastmod" => filemtime("$dir$entry") 
     ); 
     } elseif(is_readable("$dir$entry")) { 
     $retval[] = array(
      "name" => "$dir$entry", 
      "type" => mime_content_type("$dir$entry"), 
      "size" => filesize("$dir$entry"), 
      "lastmod" => filemtime("$dir$entry") 
     ); 
     } 
    } 
    $d->close(); 

    return $retval; 
    } 
?> 

<h1>Display PNG images in a TABLE</h1> 

<table class="collapse" border="1"> 
<thead> 
<tr><th></th><th>Name</th><th>Type</th><th>Size</th><th>Last Modified</th></tr> 
</thead> 
<tbody> 
<?PHP 
    $dirlist = getFileList("./images"); 
    foreach($dirlist as $file) { 
    if(!preg_match("/\.png$/", $file['name'])) continue; 
    echo "<tr>\n"; 
    echo "<td><img src=\"{$file['name']}\" width=\"64\" alt=\"\"></td>\n"; 
    echo "<td>{$file['name']}</td>\n"; 
    echo "<td>{$file['type']}</td>\n"; 
    echo "<td>{$file['size']}</td>\n"; 
    echo "<td>",date('r', $file['lastmod']),"</td>\n"; 
    echo "</tr>\n"; 
    } 
?> 
</tbody> 
</table> 

回答

1

如果你只想列出在不到3天前

if(!preg_match("/\.png$/", $file['name']) 
    || $file['lastmod'] > strtotime('-3 day') 
) continue; 

修改過的文件。如果你想添加分頁,你應該把過濾器getFileList,而不是上顯示,以便能輕鬆計數您可以顯示的項目的數量。

+0

謝謝回合分頁主題,你說分頁代碼進入getFileList ..? – dames 2014-09-10 17:56:43

+0

@dames我指的是你的'$ retval'數組。它目前包含所有文件,然後過濾非PNG和超過3天的圖像。對於分頁,您需要將過濾器移到您的'getFileList'函數中,以便'$ retval'只包含您想要顯示的圖像。一旦你有了,你可以使用'count'和'array_slice'來找出哪些圖像顯示,取決於你在哪個頁面上。 – FuzzyTree 2014-09-10 18:55:38

+0

好再次感謝@FuzzyTree – dames 2014-09-10 19:34:26

相關問題