包含目录中日期的文件

时间:2013-10-30 20:45:06

标签: php arrays date include directory

好吧,我概述了我正在/正在工作的网站。而对于每个网站我都有一个php文件。在那个php文件中,我使用这段代码来获取文件的最新和最旧日期,注意目录中的图片。

$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文件中。所以实际上我想将这些代码与一个代码相结合。 所以我有一个名为test的php文件。我希望目录中最新文件的日期也称为test。那些名字总是一样的。

我认为使用第二个代码的输出然后摆脱“sites /”和“.php”。我认为这些名字必须是一个数组。然后为每个名称获取最新文件并从最新到最旧排序。

我认为这样我最近在顶部工作的网站和页面底部的旧网站。 也许我的方法完全错了,但我不知道如何在代码中做到这一点。

1 个答案:

答案 0 :(得分: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。