Допустим у Вас загружается zip архив через кнопку Файл-Обзор и Вам нужно распаковать его средствами PHP, разархивировать и что-то сделать с файлами архива. Далее я приведу скрипт, которым лично распаковывал текстовые файлы, упакованные в один zip-архив.
//проверяем наличие нашего файла-переменной zpx в получаемых данных.
if (array_key_exists("zpx",$_FILES) && is_uploaded_file($_FILES['zpx']['tmp_name']) && ($_FILES['zpx']['size'] > 0)) {
// Создаем объект $zip. В качестве параметра передаем имя архива.
$zip = new PclZip($_FILES['zpx']['tmp_name']);
//это функция обработчик, которую будем применять для каждого файла из распакуемого архива
function myPostExtractCallBack($p_event, &$p_header) {
set_time_limit(3000); //задаем лимит времени выполнения скрипта
// ----- проверяем успешность распаковки
if ($p_header['status'] == 'ok') {
//читаю файл
$fd = fopen($p_header['filename'], "rb");
echo "<P>Обрабатываю построчно файл: ".$p_header['filename']."<BR>";
while (!feof ($fd)) {
$buffer = fgets($fd, 12288); //сюда занесли строку из файла 12288 байт
//... тут можно что-то сделать со строкой из файла
}
fclose ($fd);
}
// ----- удаляем файл
unlink($p_header['filename']);
return 1; //1 - распаковываем дальше, 2 - прерываем распаковку
}
//а здесь мы как раз разархивируем файл и вызываем эту функцию для каждого файла в архиве
$list = $zip->extract(PCLZIP_OPT_PATH, 'extract',
PCLZIP_CB_POST_EXTRACT, 'myPostExtractCallBack');
}
Надеюсь теперь Вам стало понятно, как работать на PHP с zip-архивами.