2017-03-07 62 views
0

我有這個代碼獲取此目錄中的所有文件,但我不知道如何修改它以按日期排序。它目前顯示所有的文件,併爲它添加分頁,但現在圖像沒有按日期順序排列,我試圖用其他的stackoverflow答案來做,但它不起作用。按照此代碼格式按日期排序圖像

<?php 
    $maindir = "../source" ; 
    $mydir = opendir($maindir) ; 
    $limit = 20; 
    $offset = ((int)$_GET['offset']) ? $_GET['offset'] : 0; 
    $files = array(); 
    $page=''; 
    $exclude = array(".", "..", "index.php",".htaccess","guarantee.gif") ; 
    while($fn = readdir($mydir)) 
    { 
     if (!in_array($fn, $exclude)) 
     {        
      $files[] = $fn;; 
     } 
    } 
    closedir($mydir); 
    $newICounter = (($offset + $limit) <= sizeof($files)) ? ($offset + $limit) : sizeof($files); 

    for($i=$offset;$i<$newICounter;$i++) { 
    ?> 
     <a href="<?php print $files[$i]; ?>"><?php print $files[$i]; ?></a><br> 
    <?php 
    } 
    freddyShowNav($offset,$limit,sizeof($files),""); 

    function freddyShowNav($offset, $limit, $totalnum, $query) { 
     global $PHP_SELF; 
     if ($totalnum > $limit) { 
       // calculate number of pages needing links 
       $pages = intval($totalnum/$limit); 

       // $pages now contains int of pages needed unless there is a remainder from division 
       if ($totalnum%$limit) $pages++; 

       if (($offset + $limit) > $totalnum) { 
        $lastnum = $totalnum; 
        } 
       else { 
        $lastnum = ($offset + $limit); 
        } 
      echo $pages; 
       ?> 
        <table cellpadding="4"><tr><td>Page </td> 
         <td> 
          <ul class="pager"> 
           <li><a href="?offset=<?php echo $_GET['offset'] - 20; ?>"><i class="fa fa-angle-left"></i> Previous</a></li> 
           <li><a href="?offset=<?php echo $_GET['offset'] + 20; ?>">Next <i class="fa fa-angle-right"></i></a></li> 
          </ul> 
         </td> 

         </tr></table> 
       <?php 
      } 
     return; 
     } 
    echo $page; 
    ?> 

回答

1

您嘗試使用這種 http://php.net/manual/en/function.filemtime.php 這個http://php.net/manual/en/function.sort.php

要檢查文件修改日期可以使用文件時間函數這樣

while($fn = readdir($mydir)) 
{ 
    if (!in_array($fn, $exclude)) 
    {        
     $files[] = array(
      'file_name' => $fn, 
      'mod_time' => filemtime($maindir.'/'.$fn) 
      ); 
    } 
} 

和排序表文件

usort($files, function($a, $b) { 
    return $a['mod_time'] - $b['mod_time']; 
}); 
+0

你的答案一定會幫助OP。但只是發佈一些鏈接,而不解釋他們的工作方式是低質量的職位。如果可能,請編輯您的答案並添加包含這兩個函數的示例代碼,並顯示它們的工作方式。 – EhsanT

+0

如果你有「文件時間」是不是應該是「filemtime」? 此外,我不明白我應該把什麼東西放在什麼地方...無論我輸入什麼,它只是在頁面上出現「數組」。 –

+0

對不起,我的錯誤,現在是永遠認爲應該沒問題。 – DevQuayle