我有一个包含多个文件的文件夹,如:
text.txt | modified 14h30
info.ini | modified 14h30
trail.txt | modified 14h30
trail.txt.1 | modified 14h35
trail.txt.2 | modified 14h32
我需要的是打开最新的trail.txt的两种方法(因为这是来自另一个软件的日志,我仍然不确定如何选择活动的日志)
我需要一个函数来打开最新的trail.txt.X(最高编号)和另一个函数来打开最后修改过的trail.txt。
我试图搜索很多功能,但我做不到,我希望有人可以帮助我。到目前为止我所拥有的是一个基本的开放
$trail_file = "C:\Users\Public\Documents\\trail.txt.20";
$fh = fopen($trail_file, "r");
if ( $fh ) {
while ( !feof($fh) ) {
$line[] = fgets($fh);
}
fclose($fh);
我现在有以下工作代码:
$carpeta="C:/Users/Public/Documents/";
if(is_dir($carpeta)){
$files_in_dir = array();
if($dir = opendir($carpeta)){
while(($file = readdir($dir)) !== false){
if(preg_match('/trail.txt/six', $file))
$files_in_dir[filemtime($carpeta.'/'.$file)] = $file; //i missed that important part
}
closedir($dir);
}
}
// sort
ksort($files_in_dir);
// find the last modification
$last_file = end($files_in_dir);
echo $last_file."<br>";
答案 0 :(得分:0)
只需使用filemtime
修改
我在西班牙语论坛找到了解决方案,所以我不复制所有代码,我错过了几行... 现在它应该工作
$carpeta="C:/AppServ/www/blog/images";
if(is_dir($carpeta)){
$files_in_dir = array();
if($dir = opendir($carpeta)){
while(($file = readdir($dir)) !== false){
if($file != '.' && $file != '..' && $file != '.htaccess')
$files_in_dir[filemtime($file)] = $file; //i missed that important part
$number_infile = explode(".", $file); //add this 2 lines to get the highest number)
$files_in_dir_highest_number[$number_infile[2]] = $file;
}
closedir($dir);
}
}
// sort
ksort($files_in_dir);
// find the last modification
$last_file = end($files_in_dir);
echo $last_file."<br>";
foreach($files_in_dir as $file) {
$lastModified = date('F d Y, H:i:s',filemtime($file));
if ($file == $last_file) {
echo "$file$lastModified";
}
}
//this lines get the highest name
ksort($files_in_dir_highest_number);
$file_highest_number = end($files_in_dir_highest_number);
echo $file_highest_number."<br>";