所以我有这个处理CSV文件的应用程序.我有一行代码来加载文件.
$myFile = "data/FrontlineSMS_Message_Export_20120721.csv"; //The name of the CSV file
$fh = fopen($myFile, 'r'); //Open the file
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法,我可以在data目录中查看并获取最新的文件(它们都有日期标记,因此它们将按顺序排列data)并将名称设置为等于$myFile.
我真的找不到并理解php目录的文档,所以任何有用的资源也会受到赞赏.谢谢.
Mat*_*chu 47
这是一次尝试使用scandir,假设目录中的唯一文件是您想要的带时间戳的文件:
$files = scandir('data', SCANDIR_SORT_DESCENDING);
$newest_file = $files[0];
Run Code Online (Sandbox Code Playgroud)
我们首先按降序列出目录中的所有文件,然后,该列表中的第一个文件具有"最大"文件名 - 因此是最大的时间戳值 - 因此是最新的.
请注意,它scandir是在PHP 5中添加的,但其文档页面显示了如何在PHP 4中实现该行为.
对于使用通配符的搜索,您可以使用:
<?php
$path = "/var/www/html/*";
$latest_ctime = 0;
$latest_filename = '';
$files = glob($path);
foreach($files as $file)
{
if (is_file($file) && filectime($file) > $latest_ctime)
{
$latest_ctime = filectime($file);
$latest_filename = $file;
}
}
return $latest_filename;
?>
Run Code Online (Sandbox Code Playgroud)