[英]How can I extract files from a zip folder using PHP while retaining the files original timestamps?
我的服務器上有一個zip文件夾,其中包含一個復雜的文件結構和數百個帶有不同時間戳的文件。
我一直在使用php的ZipArchive來提取我需要的所有內容,並且與提取的所有時間戳(當前日期/時間)不同,它的工作原理非常好。
如何在保留文件原始時間戳的同時使用PHP從zip文件夾中提取文件?
您可以嘗試tar.gz格式。 如果使用Windows可以使用7 zip
如果您使用Linux,則有tar default命令 。 或php語法http://www.php.net/manual/zh/phardata.extractto.php
他們兩個都將保留原始時間戳。
我沒有找到一種方法來處理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);
}
通過PHP ZipArchive庫沒有直接的方法來提取文件,同時將原始時間戳保留在存檔中。 但是,通過讀取通過調用ZipArchive :: statName()返回的'mtime'變量,可以從存檔中讀取存檔最后修改的時間戳中的每個文件。 您可以存儲每個文件的結果,然后使用PHP的touch()函數在文件系統上手動設置提取文件的時間戳。
您最好使用exec()調用unzip
或其他工具,該工具默認保留時間戳或使用簡單的option參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.