使用PHP打开增量版本文件

时间:2014-02-27 00:19:41

标签: php file

我有一个包含多个文件的文件夹,如:

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>";

1 个答案:

答案 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>";