2013-09-19 3 views
0

У меня есть файл ZIP, который находится на моем сервере. Я хочу разархивировать его, а затем сохранить полностью содержимое файла в одну переменную.get_file_contents файла zipped

Я НЕ хочу сохранять распакованный файл на своем сервере или на компьютере посетителя. Мне просто нужно все содержимое этого zip-файла, хранящегося в переменной, с которой я могу поиграть, и в конечном итоге показать на экране. Каждое другое решение, которое я нашел для этой проблемы, включает в себя сохранение файла в распакованной форме.

Как это сделать с помощью get_file_contents или любой другой функции?

+0

Что вы пробовали? '$ contents = get_file_contents ('file.zip')' должен делать трюк –

+0

Вы заглянули в http://php.net/manual/en/book.zip.php? – aynber

+0

Энди, который получает содержимое в виде zipped-файла. Я хочу получить содержимое распакованного файла. – rgbflawed

ответ

0

Вы можете просто найти имена файлов в архиве ZIP с помощью PHP ZipArchive, например. попробуйте это (не проверял, но вы должны быть в состоянии заставить его работать):

$za = new ZipArchive(); 
$za->open('archive.zip'); 
$fileContents = array(); 

for($i = 0; $i < $za->numFiles; $i++) { 

    $stat = $za->statIndex($i); 
    $fp = $z->getStream($stat['name']); 
    if(!$fp) exit("failed\n"); 

    $contents = ''; 
    while (!feof($fp)) { 
     $contents .= fread($fp, 1000); 
    } 

    fclose($fp); 

    $fileContents[$stat['name']] = $contents; 
} 

После того, как вы знаете имена файлов в Zip вы также можете использовать что-то вроде этого:

$path = sprintf('zip://%s#%s', $zipArchive, $fileNameInZipArchive); 
$fileData = file_get_contents($path); 
Смежные вопросы