Vous devez ouvrir l'archive et peut alors parcourir les fichiers par index:
$zip = new ZipArchive();
if ($zip->open('archive.zip'))
{
for($i = 0; $i < $zip->numFiles; $i++)
{
echo 'Filename: ' . $zip->getNameIndex($i) . '<br />';
}
}
else
{
echo 'Error reading .zip!';
}
Pour lire le contenu d'un seul fichier, vous pouvez utiliser ZipArchive::getStream($name).
$zip = new ZipArchive();
$zip->open("archive.zip");
$fstream = $zip->getStream("index.txt");
if(!$fp) exit("failed\n");
while (!feof($fp)) {
$contents .= fread($fp, 2);
}
Une autre façon de le faire directement, il utilise le zip: // wrapper flux:
$file = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
...
Et comment puis-je lire le contenu de l'un des fichiers? – danidacar
Pour un accès en lecture seule, vous aurez besoin http://www.php.net/manual/fr/function.ziparchive-getstream.php sinon vous devrez l'extraire d'abord – Fanis
Désolé, en quelque sorte mal compris votre question - fixe le répondre. – halfdan