Aller au contenu

zip_entry_open()

⚠️ Avertissement de dépréciation : La fonction zip_entry_open() appartient à l'ancienne extension zip, qui a été dépréciée dans PHP 7.4 et supprimée dans PHP 8.0. Les exemples ci-dessous sont fournis à titre de référence historique uniquement. Pour les applications PHP modernes, utilisez plutôt la classe ZipArchive.

La fonction zip_entry_open() est une fonction intégrée de PHP utilisée pour ouvrir un fichier dans une archive zip. Elle renvoie un handle qui peut être utilisé pour lire le contenu du fichier.

Syntaxe

La syntaxe de la fonction zip_entry_open() est la suivante :

Syntaxe de la fonction zip_entry_open() en PHP

php
resource zip_entry_open(resource $zip, resource $zip_entry [, string $mode = "r" [, resource $password ]])

$zip est le handle zip renvoyé par zip_open(), $zip_entry est le handle zip_entry pour le fichier dans l'archive zip, $mode est le mode d'ouverture du fichier, et $password est le mot de passe pour les archives zip chiffrées.

Exemples d'utilisation

Examinons un exemple pratique d'utilisation de zip_entry_open() en PHP.

Exemple : Ouverture d'un fichier dans une archive zip

Supposons que vous ayez ouvert une archive zip à l'aide des fonctions PHP zip et que vous souhaitiez ouvrir un fichier dans cette archive. Vous pouvez utiliser la fonction zip_entry_open() pour ce faire, comme suit :

Ouverture d'un fichier dans une archive zip en PHP

php
$zip = zip_open("example.zip");
$zip_entry = zip_read($zip);

// open the file
$zip_entry_handle = zip_entry_open($zip, $zip_entry, "r");

// read the contents of the file
$file_contents = zip_entry_read($zip_entry_handle, zip_entry_filesize($zip_entry));

// close the file handle
zip_entry_close($zip_entry_handle);

Ce code ouvre un fichier d'archive zip « example.zip » à l'aide de zip_open(). Nous lisons ensuite un fichier dans l'archive avec zip_read() et ouvrons le fichier avec zip_entry_open() en mode « r ». Le contenu du fichier est lu avec zip_entry_read() et le handle est fermé avec zip_entry_close().

Alternative moderne : Classe ZipArchive

Pour obtenir le même résultat en PHP 8.0+, utilisez la classe intégrée ZipArchive :

php
$zip = new ZipArchive;
if ($zip->open('example.zip') === true) {
    // Get the first file entry in the archive
    $stat = $zip->statIndex(0);
    $file_contents = $zip->getFromName($stat['name']);
    $zip->close();
}

Conclusion

Dans cet article, nous avons abordé la fonction PHP zip_entry_open() et son utilisation pour ouvrir un fichier dans une archive zip. Nous avons expliqué ce que fait la fonction, sa syntaxe et fourni un exemple d'utilisation dans un scénario pratique. Notez que zip_entry_open() est dépréciée et supprimée dans PHP 8.0 ; pour les projets modernes, utilisez la classe ZipArchive pour ouvrir et lire des fichiers dans une archive zip.

Pratique

Que fait la fonction ZipEntry::open() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.