如何在创建订单日期显示文件夹?

时间:2013-05-31 20:17:13

标签: php

我是PHP的新手,正在开发一个名为BaboonHut.com的项目,我正在用PHP编写代码,因为最好的学习方法就是潜入。无论如何,下面的代码片段现在得到的名称是某个位置的所有文件夹并显示一些信息,但是这些项目当前按字母顺序显示,我希望它们按照文件夹创建的顺序显示。 SimpleHost应该在Code-Game-Sleep http://www.baboonhut.com/resources/之前,在此先感谢。

<?php
$dir = 'resources/';

foreach(glob($dir.'*', GLOB_ONLYDIR) as $resdir) {
    $resdir = str_replace($dir, '', $resdir);
    echo "
<div class=\"span3\">
<div class=\"tile\">
<img src=\"resources/". $resdir ."/thumbnail.png\" class=\"img-rounded\">
<h3 class=\"tile-title\">". $resdir ."</h3>
<p>"; echo  include('resources/'. $resdir .'/description.txt'); echo "</p>
<a class=\"btn btn-primary btn-large btn-block\" href=\"http://www.baboonhut.com/resources/" . $resdir ."/\">More Information</a>
</div>
</div>
"
;
}
?>

3 个答案:

答案 0 :(得分:2)

这将从目录中获取文件列表,将它们放入数组中,然后按日期对数组进行排序。

<?php
$dir = 'resources/';
$files = [];

foreach(glob($dir.'*', GLOB_ONLYDIR) as $resdir) {
    $files[] = [
        "name" => $resdir,
        "time" => filectime($resdir)
    ];
}

// Sort files by date
usort($files, function($a, $b){
    return $b["time"] - $a["time"];
});

foreach($files as $resdir) {
    $resdir = str_replace($dir, '', $resdir);
    echo <<<HTML
    <div class="span3">
    <div class="tile">
    <img src="resources/$resdir/thumbnail.png" class="img-rounded">
    <h3 class="tile-title">$resdir</h3>
    <p>
HTML;
    readfile('resources/'. $resdir .'/description.txt'); 
    echo <<<HTML
    </p>
    <a class="btn btn-primary btn-large btn-block" href="http://www.baboonhut.com/resources/$resdir/">More Information</a>
    </div>
    </div>
HTML;
}

答案 1 :(得分:1)

你无法击败DirectoryIterator

$files = array();
$dir = new DirectoryIterator('.');
foreach ($dir as $fileinfo) {
   // Add only directories into a associative array, that key is it `MTime`
   if($fileinfo->isDir()){
       $files[$fileinfo->getMTime()] = $fileinfo->getFilename();
   }
}

// Then, key sort it.
ksort($files);

答案 2 :(得分:0)

使用创建日期

$files = glob(__DIR__ . '/*', GLOB_ONLYDIR);

// Using Creation Date
usort($files, function ($a, $b) {
    return filetime($a) - filetime($b);
});

foreach($files as $file) {
    printf("%s : %s\n", date("r", fileatime($file)), $file);
}

function filetime($file) {
    return PHP_OS == "win" ? fileatime($file) : filectime($file);
}

使用修改日期

$files = glob(__DIR__ . '/*', GLOB_ONLYDIR);

// Using Modification Date
usort($files, function ($a, $b) {
    return filemtime($a) - filemtime($b);
});

foreach($files as $file) {
    printf("%s : %s\n", date("r", fileatime($file)), $file);
}

注意:使用$a - $b降序,但如果您想降序,请使用$b - $a