PHP按日期/时间和文件大小对文件进行排序

PHP按日期/时间和文件大小对文件进行排序,php,datetime,timestamp,filesize,Php,Datetime,Timestamp,Filesize,我正在修改一个简单的网站。本网站有一个页面,显示可供下载的客户端文件(如果适用)。目前,这些文件只是随机排列,没有具体细节。我希望能够有他们在分散顺序的基础上的时间戳,他们是可用的。还包括它们的文件大小。这是使用php来显示文件,我是否需要在显示它们之前对目录进行排序?如果是这样,那将是一个单独的脚本,何时运行?或者我可以按照它们在下面代码中的显示对它们进行排序吗 <div id="f2"> <h3>Files Available for Download</h3&

我正在修改一个简单的网站。本网站有一个页面,显示可供下载的客户端文件(如果适用)。目前,这些文件只是随机排列,没有具体细节。我希望能够有他们在分散顺序的基础上的时间戳,他们是可用的。还包括它们的文件大小。这是使用php来显示文件,我是否需要在显示它们之前对目录进行排序?如果是这样,那将是一个单独的脚本,何时运行?或者我可以按照它们在下面代码中的显示对它们进行排序吗

<div id="f2">
<h3>Files Available for Download</h3>
<p>
<?php
// list contents of user directory
if (file_exists($USER_DIRECTORY)) {
    if ($handle = opendir($USER_DIRECTORY)) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != "..") {
                echo "<a href='download_file.php?filename=".urlencode($entry)."'>".$entry."</a><br/>";
            }
        }
    closedir($handle);
    }
}

?>
</p>

</div>

可供下载的文件

非常熟悉php,因此非常感谢您的帮助。

这里有一个可能会有所帮助的片段。 它对指定的每个文件或文件扩展名生成一个
href
。修改以适应

  • 目前已将其编码为使用
    asort()
    函数
可以很容易地将其更改为
usort()

另请参见
arsort()
函数

文件大小也包括在内,但它没有格式化为字节、kb等。有一些函数可以根据需要对其进行格式化谷歌“文件大小格式php”

基于。可能有助于对这个问题有一点了解。干杯
<?php

// You can use the desired folder to check and comment the others.
// foreach (glob("../downloads/*") as $path) { // lists all files in sub-folder called "downloads"
foreach (glob("test/*") as $path) { // lists all files in folder called "test"
//foreach (glob("*.php") as $path) { // lists all files with .php extension in current folder
    $docs[$path] = filectime($path);
} asort($docs); // sort by value, preserving keys

foreach ($docs as $path => $timestamp) {
    print date("d M. Y: ", $timestamp);
    print '<a href="'. $path .'">'. basename($path) .'</a>' . " Size: " . filesize($path) .'<br />';
}
?>
function filesize_format($size, $sizes = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'))
{
    if ($size == 0) return('n/a');
    return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $sizes[$i]);
}