我的服务器上有一个zip文件夹,其中包含复杂的文件结构和数百个具有不同时间戳的文件。
我一直在使用php ZipArchive来提取我需要的一切,除了提取的所有时间戳之外,它的工作效果非常好。当前日期/时间。
如何在保留时使用PHP从zip文件夹中提取文件 文件原始时间戳?
答案 0 :(得分:0)
您可以尝试tar.gz格式。如果您使用Windows,可以使用7 zip
如果您使用Linux,则有tar default command。 或者php语法http://www.php.net/manual/en/phardata.extractto.php
它们都会保留原始时间戳。
答案 1 :(得分:0)
我找不到用zip文件夹做我想要的方法。
相反,我创建了一个.tar.gz文件,并使用Archive_Tar类来提取文件夹和文件。要使用Archive_Tar,服务器需要运行PHP 5.3+并安装PEAR。
require_once 'Archive/Tar.php';
$path = '';
$import_file_path = $path."/report_import.tar.gz";
if(file_exists($import_file_path)){
$tar = new Archive_Tar($import_file_path, true);
$result = $tar->extract($path);
}
答案 2 :(得分:0)
没有通过PHP ZipArchive库直接提取文件同时保留存档中的原始时间戳的方法。但是,通过阅读“mtime”,可以从存档中读取存档上次修改时间戳中的每个文件。通过调用ZipArchive::statName()返回的变量。您可以为每个文件存储此结果,然后使用PHP的touch()函数手动设置文件系统上解压缩文件的时间戳。
使用exec()调用perl -wE'symlink "FILE.txt", "link_to_FILE.txt" or warn "Cant make it: $!"'
或其他工具可能会更好,默认情况下会保留时间戳或使用简单的选项参数。