Dans le développement de PHP, il est très courant d'utiliser la classe ziparchive pour compresser les packages. Parfois, nous devons modifier l'horodatage des fichiers dans le package compressé pour répondre à certains besoins commerciaux. Cet article expliquera en détail comment implémenter cette fonction via Ziparchive.
Ziparchive est une classe intégrée en PHP qui est utilisée pour créer, ouvrir, lire et modifier les fichiers ZIP. Il fournit un moyen riche de soutenir la gestion du contenu du package compressé.
Tout d'abord, utilisez la classe Ziparchive pour ouvrir le package de compression cible:
$zip = new ZipArchive();
$zipFile = 'path/to/your/zip/file.zip';
if ($zip->open($zipFile) === true) {
// Continuer
}Ensuite, appelez la méthode StatIndex pour obtenir les détails du fichier d'index spécifié, qui contient l'horodatage:
$fileIndex = 0; // Index des fichiers dans les packages compressés
$fileInfo = $zip->statIndex($fileIndex);
$lastModifiedTime = $fileInfo['mtime'];Modifiez l'horodatage, par exemple, défini sur l'heure actuelle:
$lastModifiedTime = time();Utilisez la méthode SetModificationTime pour appliquer le nouvel horodatage au fichier correspondant:
$zip->setModificationTime($fileIndex, $lastModifiedTime);Enfin, fermez le package zip pour enregistrer la modification:
$zip->close();Voici l'exemple de code complet qui montre comment modifier l'horodatage du premier fichier dans le package compressé:
$zip = new ZipArchive();
$zipFile = 'path/to/your/zip/file.zip';
if ($zip->open($zipFile) === true) {
$fileIndex = 0;
$fileInfo = $zip->statIndex($fileIndex);
$lastModifiedTime = $fileInfo['mtime'];
$lastModifiedTime = time();
$zip->setModificationTime($fileIndex, $lastModifiedTime);
$zip->close();
}Ce code met à jour l'horodatage du fichier indexé à 0 dans le package compressé à l'heure actuelle.
Avec la classe Ziparchive de PHP, nous pouvons facilement modifier l'horodatage d'un seul fichier dans le package compressé. Cet article aide à comprendre le processus d'implémentation via des explications d'étape et un exemple de code, qui convient aux scénarios où l'heure des fichiers de package compressé doit être personnalisée.