2013-10-30 46 views
0

好的,我有一個我正在工作的網站的概述。併爲每個網站我有一個PHP文件。並在該PHP文件中,我使用此代碼獲取文件的最新和最舊的日期是什麼,注意directroy中的圖片。inlcude目錄中的日期文件

$date = "test/*.*"; 
$files = array_filter(glob($date), function($file) { 
    $ext = substr($file, strrpos($file, '.')); 
    return !in_array($ext, array('.jpg', '.bit', '.png', '.jpeg', '.gif', '.bmp')); 
}); 
$latest = count($files)-1 ; 

array_multisort(
    array_map('filemtime', $files), 
    SORT_NUMERIC, 
    SORT_ASC, 
    $files 
); 
$newestfile = date ("d F Y ", filemtime($files[0])); 
$oldestfile = date ("d F Y ", filemtime($files[$latest])); 
if($newestfile == $oldestfile) { 
    echo date ("d F Y ", filemtime($files[0])); 
} else { 
    echo date ("d F Y ", filemtime($files[0])); 
    echo "   -   " ; 
    echo date ("d F Y .", filemtime($files[$latest])); 
} 

該代碼的輸出將如下所示:2013年1月16日 - 2013年10月25日。

在我的概述頁面中,我使用了一個代碼來將所有的php文件(我所做的網站)包含到該頁面中。 (順便說一句PHP文件並不大網頁只是一個圖片和一些文字。)

$listy = glob("sites/*.php"); 
print_r ($listy) ; 
array_multisort(
    array_map('filemtime', $listy), 
    SORT_NUMERIC, 
    SORT_DESC, 
    $listy 
); 
if (empty($listy)) { 
    include('includes/emptycontent.php'); 
} else { 
    foreach ($listy as $filename) { 
     include $filename; 
    } 
} 

這個陣列的輸出會是這樣的:

Array ( 
    [0] => sites/test.php 
    [1] => sites/test2.php 
    [2] => sites/test3.php 

到目前爲止好,在這方面沒有問題。

現在,我想排序包含的文件,而不是包含文件的時間,就像我在上面的代碼中所做的那樣。但我希望它能夠像PHP文件中的目錄中的文件的最新日期排序。所以實際上我想將這些代碼結合到一個。 所以我有一個稱爲測試的PHP文件。我想在目錄中的最新文件的日期也稱爲測試。這些名稱始終相同。

我以爲是使用第二個代碼的輸出,然後擺脫「sites /」和「.php」。這些名字必須在我想的陣列中。然後爲每個名稱獲取最新的文件並將其從最新到最舊排序。

我覺得這樣我得到的網站上,我最近工作的頂部和較舊的頁面底部。 也許我的問題是完全錯誤的,但我不知道如何在代碼中做到這一點。我希望你們能夠幫助我。

回答

0

看該位:

array_map('filemtime', $listy), 

在這裏,你會有效的文件列表轉換爲修改日期的列表。如何將其轉換爲另一個函數。一個在目錄中查找最近的文件:

array_map(function ($filename) { 
    // $filename = sites/test1.php 
    $dir = substr($filename, strlen("sites/"), - strlen(".php")); // cut those! 
    // or: 
    $dir = basename($filename, '.php'); 

    // put the code listing files inside $dir 
    // then sort it (you did it in the first part) 
    // and then `return` the most or the least recent one 

}, $listy), 

HTH。

+0

我認爲這是一個很好的方法。但我真的不知道如何在正確的代碼中做到這一點。對不起,我還不是一個很好的編碼器,我在代碼中犯了很多簡單的錯誤。 –

相關問題