簡體   English   中英

如何在保留文件原始時間戳的同時使用PHP從zip文件夾中提取文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM