Созонов Алексей

Веб-разработчик

Разархивировать zip-архив php

09.08.2015

1 способ

<?php 
    echo exec('unzip file.zip'); 
?>

2 способ

Скачиваем библиотеку PclZip. После создаем файл unzip.php и добавляем туда следующий код:

<?php

require_once('pclzip.lib.php');
$archive = new PclZip("archive.zip");
if ($archive->extract() == 0) {
die("Error : ".$archive->errorInfo(true));
}
?>

Файлы будут извлечены в ту же папку.

Чтобы создать архив

<?php

require_once('pclzip.lib.php');//подключаем библиотеку

$files = glob('{,.ht}*', GLOB_BRACE);//получаем массив всех файлов в текущей папке, исключая .htaccess, .htpasswd

$s = array();
$aForbiddenNames = array('pclzip.lib.php','cgi-bin','zip.php','unzip.php');//указываем файлы, какие не следует включать в архив

//исключаем из массива файлов запрещенные
foreach($files as $file){
    if(in_array($file,$aForbiddenNames)) continue;
    $s[] = $file;
}
$s = implode(',', $s);//превращаем массив в строку

$archive = new PclZip('archive.zip');
$v_list = $archive->create($s);//создаем архив, передавая строку со списком файлов для архивации
if ($v_list == 0) {die("Error : ".$archive->errorInfo(true)); }
?>
#PHP