【问题标题】:reading the latest created file php读取最新创建的文件 php
【发布时间】:2012-06-14 21:42:34
【问题描述】:

我知道如何在 PHP 中读取文件,但我想读取在特定文件夹中创建的最新文件。

我有一个指向read.php的html按钮

read.php 读取文件夹c:\file\ 并读取在该文件夹中创建的最新文件。

我找不到太多关于如何执行此操作的信息

谁能帮我做这件事。

【问题讨论】:

标签: php file


【解决方案1】:

遍历目录,跟踪最近创建的文件,在每一个都被遍历和检查后返回最新的。

$dir = "C:\file\";
if ($handle = opendir($dir)) {
    $latest = null;
    while (($cur = readdir($handle) !== false) {
        if ($latest == null || filectime($cur) > filectime($latest)) {
            $latest = $cur;
        }
    }
    closedir($handle);
}
return $latest;

注意:大多数 Unix 操作系统不跟踪文件创建日期,因此您可以获得最接近的最后修改日期(通过filemtimefilectime)。但是,在 Windows 上,filectime 返回创建日期,filemtime 返回最后修改日期。

【讨论】:

  • 返回最后修改的文件。你想使用filectime
  • 哦,你说得对,我的错。还要添加注释,许多 Unix 操作系统不跟踪创建时间,因此 filectime 与 Unix 中的 filemtime 具有相同的结果。
【解决方案2】:

C:\file中获取最新文件:

$files = glob('c:/file/*.*');
$files = array_combine($files, array_map('filectime', $files));
arsort($files);
echo key($files); // the filename 

【讨论】:

  • 哦 PHP 的奇迹。我的异常值检测是受 Java 影响编写的,而 Java 缺少这些快捷方式。道具;你的答案比我的要干净得多。赞成。
【解决方案3】:

这将遍历目录中的每个文件并确定哪个文件具有最新的“创建时间”:

function find_latest()
{
    $l = 0;
    $r = '';
    foreach( new DirectoryIterator('C:\\file') as $file )
    {
        $ctime = $file->getCTime();    // Time file was created
        $fname = $file->getFileName(); // File name
        if( $ctime > $l )
        {
            $l = $ctime;
            $r = $fname;
        }
    }
    return $r;
}

【讨论】:

    猜你喜欢
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多