我知道如何在PHP中读取文件,但我想读取在特定文件夹中创建的最新文件。我有一个html按钮指向read.phpread.php读取文件夹c:\file\并读取该文件夹中创建的最新文件。我找不到太多关于如何做到这一点的信息谁能帮我做到这一点。
read.php
c:\file\
rjzwgtxy1#
获取C:\file中的最新文件:
C:\file
$files = glob('c:/file/*.*'); $files = array_combine($files, array_map('filectime', $files)); arsort($files); echo key($files); // the filename
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; }
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操作系统不跟踪文件创建日期,因此您可以获得最接近的是最后修改日期(通过filemtime或filectime)。但是,在Windows上,filectime返回创建日期,filemtime返回上次修改日期。
filemtime
filectime
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; }
4条答案
按热度按时间rjzwgtxy1#
获取
C:\file
中的最新文件:pxiryf3j2#
这将遍历目录中的每个文件,并确定哪个文件具有最新的“创建时间”:
jecbmhm33#
遍历目录,跟踪最近创建的文件,每次遍历并检查完文件后返回最新的文件。
注意:大多数Unix操作系统不跟踪文件创建日期,因此您可以获得最接近的是最后修改日期(通过
filemtime
或filectime
)。但是,在Windows上,filectime
返回创建日期,filemtime
返回上次修改日期。v8wbuo2f4#
如果目录中有数千个文件,则在操作系统级别获取文件的速度要快得多。下面的代码是特定于操作系统的,只能在Unix系列操作系统上工作: