В PHP можно проверить содержимое Zip-файла без предварительного извлечения его содержимого?
Я видел класс ZipArchive в PHP, который позволяет читать zip-файлы. Но мне интересно, есть ли способ итерации, хотя его содержимое без извлечения файла сначала
3 Solutions collect form web for “В PHP можно проверить содержимое Zip-файла без предварительного извлечения его содержимого?”
Как найдено в комментарии к http://www.php.net/ziparchive :
Следующий код можно использовать для получения списка всех имен файлов в zip-файле.
<?php $za = new ZipArchive(); $za->open('theZip.zip'); for( $i = 0; $i < $za->numFiles; $i++ ){ $stat = $za->statIndex( $i ); print_r( basename( $stat['name'] ) . PHP_EOL ); } ?>
http://www.php.net/manual/en/function.zip-entry-read.php
<?php $zip = zip_open("test.zip"); if ($zip) { while ($zip_entry = zip_read($zip)) { echo "<p>"; echo "Name: " . zip_entry_name($zip_entry) . "<br />"; if (zip_entry_open($zip, $zip_entry)) { echo "File Contents:<br/>"; $contents = zip_entry_read($zip_entry); echo "$contents<br />"; zip_entry_close($zip_entry); } echo "</p>"; } zip_close($zip); } ?>
Повторный вопрос. Поиск до публикации. Библиотека PHP, которая может отображать содержимое файлов zip / rar
<?php $rar_file = rar_open('example.rar') or die("Can't open Rar archive"); $entries = rar_list($rar_file); foreach ($entries as $entry) { echo 'Filename: ' . $entry->getName() . "\n"; echo 'Packed size: ' . $entry->getPackedSize() . "\n"; echo 'Unpacked size: ' . $entry->getUnpackedSize() . "\n"; $entry->extract('/dir/extract/to/'); } rar_close($rar_file); ?>