【问题标题】:File creation time via PHP (or something similar)通过 PHP(或类似的东西)创建文件的时间
【发布时间】:2012-03-30 15:46:42
【问题描述】:

我正在遍历一个目录并使用 glob() 获取所有文件。有没有办法按创建日期/时间对结果数组的元素进行排序?目前我正在使用 filemtime(),但假设它们从未被编辑过。

干杯!

【问题讨论】:

  • 它取决于操作系统,但在基于unix的系统上,创建时间不可用,只有修改时间。

标签: php file


【解决方案1】:

您可以尝试以下方法:

$array = glob("*.txt");
usort($array, function($a, $b) {
    $aTime = filectime($a);
    $bTime = filectime($b);
    if ($aTime < $bTime) {
        return -1;
    } elseif ($aTime > $bTime) {
        return 1;
    } else {
        return 0;
    }
});

传递一个匿名函数以允许用户定义的数组排序。这次函数根据glob返回的文件的创建时间(windows)/inode更改时间(linux)进行检查和排序。

希望这会有所帮助。

【讨论】:

  • 干杯!效果很好,只需要颠倒 $a 和 $b (我想要最新的,应该指定)。再次感谢!
【解决方案2】:

http://www.php.net/manual/en/function.filectime.php

可能更接近您的需要。编辑时它仍然会更新,但内容不会更新。只有元数据。

【讨论】:

  • 有趣,介意详细说明 filemtime 和 filectime 之间的区别吗?我真的不明白。
【解决方案3】:

许多文件系统不保留有关文件创建日期的任何信息。在这些上你可以尝试使用 filectime。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多