阅读最新创建的文件php

lztngnrs  于 2023-06-04  发布在  PHP
关注(0)|答案(4)|浏览(478)

我知道如何在PHP中读取文件,但我想读取在特定文件夹中创建的最新文件。
我有一个html按钮指向read.php
read.php读取文件夹c:\file\并读取该文件夹中创建的最新文件。
我找不到太多关于如何做到这一点的信息
谁能帮我做到这一点。

rjzwgtxy

rjzwgtxy1#

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

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

pxiryf3j2#

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

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;
}
jecbmhm3

jecbmhm33#

遍历目录,跟踪最近创建的文件,每次遍历并检查完文件后返回最新的文件。

$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返回上次修改日期。

v8wbuo2f

v8wbuo2f4#

如果目录中有数千个文件,则在操作系统级别获取文件的速度要快得多。下面的代码是特定于操作系统的,只能在Unix系列操作系统上工作:

chdir($dir); // change working dir
    $latest = exec('ls -t | head -1'); // get first filename from file list sorted by modification time
    if ($latest) {
        $latest = $dir . DIRECTORY_SEPARATOR . $latest;
    }

相关问题