Вам нужно открыть архив, а затем может перебрать файлы по индексу:
$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!';
}
Чтобы прочитать содержимое одного файла, вы можете использовать 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);
}
Другой способ сделать это непосредственно использует почтовый индекс: // поток обертку:
$file = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
...
И как я прочитал содержимое одного из файлов? – danidacar
Для доступа только для чтения вам понадобится http://www.php.net/manual/en/function.ziparchive-getstream.php, иначе вам придется извлечь его сначала – Fanis
Извините, как-то неправильно понял ваш вопрос - исправлено ответ. – halfdan