Maison >développement back-end >tutoriel php >Comment modifier l'horodatage du fichier du package compressé via PHP ZipArchive ?
Comment modifier l'horodatage du fichier du package compressé via PHP ZipArchive ?
Introduction :
ZipArchive est une classe intégrée à PHP utilisée pour créer, ajouter, extraire et modifier des fichiers compressés ZIP. Cependant, la classe ZipArchive présente certaines limitations dans la modification de l'horodatage des fichiers ZIP. Cet article explique comment modifier l'horodatage du fichier dans le package compressé via PHP ZipArchive et fournit des exemples de code.
Étapes :
Voici les étapes pour modifier l'horodatage des fichiers dans un package compressé via PHP ZipArchive :
Créez un objet ZipArchive et ouvrez le fichier ZIP à modifier :
$zip = new ZipArchive; if ($zip->open('example.zip') === true) { // 文件打开成功,继续后续操作 } else { // 文件打开失败,处理错误逻辑 }
Parcourez tous les fichiers dans le fichier ZIP Et récupérer son index dans le fichier ZIP :
$fileIndex = array(); for ($i = 0; $i < $zip->numFiles; $i++) { $fileIndex[$i] = $zip->getNameIndex($i); }
Horodatage du fichier modifié :
$file = 'path_to_file_within_zip'; $timestamp = time(); // 设置新的时间戳 $index = array_search($file, $fileIndex); // 获取文件在ZIP中的索引 if ($index !== false) { // 找到文件,修改时间戳 $zip->setIndex($index); $zip->setArchiveModifiedTime($timestamp); $zip->close(); } else { // 文件不存在,处理错误逻辑 }
Enregistrez et fermez le fichier ZIP modifié :
$zip->close();
Exemple de code complet :
function modifyZipFileTimestamp($zipFile, $file, $timestamp) { $zip = new ZipArchive; if ($zip->open($zipFile) === true) { $fileIndex = array(); for ($i = 0; $i < $zip->numFiles; $i++) { $fileIndex[$i] = $zip->getNameIndex($i); } $index = array_search($file, $fileIndex); if ($index !== false) { $zip->setIndex($index); $zip->setArchiveModifiedTime($timestamp); $zip->close(); return true; } $zip->close(); } return false; } // 使用示例 $zipFile = 'example.zip'; $file = 'path_to_file_within_zip'; $newTimestamp = strtotime('2022-01-01 00:00:00'); if (modifyZipFileTimestamp($zipFile, $file, $newTimestamp)) { echo '文件时间戳修改成功!'; } else { echo '文件时间戳修改失败!'; }
Résumé :
Grâce à la classe PHP ZipArchive, nous pouvons facilement modifier l'horodatage du fichier dans le fichier compressé ZIP. Cet article décrit les étapes pour modifier l'horodatage d'un fichier ZIP à l'aide de la classe ZipArchive et fournit un exemple de code complet. J'espère que cet article sera utile aux développeurs qui doivent modifier l'horodatage des fichiers ZIP en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!