• Авторизация


{004} PHP архивация файлов в формате ZIP 18-02-2009 09:31 к комментариям - к полной версии - понравилось!


Архивация файлов с помощью PHP не такой уж и хитрый процесс, нужно лишь знать что мы хотим и как это сделать [показать]

Что такое zip-архив

Zip — популярный формат сжатия данных и архивации файлов. Файл ZIP, чаще всего имеющий расширение .zip, хранит в сжатом или несжатом виде один или несколько файлов, которые можно из него извлечь путём распаковки с помощью специальной программы.

Этот формат был разработан Филом Кацем для использования в программе PKZIP. Впоследствии появилось множество других утилит, создающих файл в таком же формате. Подробней в Википедии

К делу
Иногда бывает просто необходимо хранить файлы в архивах. С одной стороны они меньше по объёму, с другой несколько файлов можно поместить в один. Возможно, если вам понадобится сделать это средствами PHP, моя заметка поможет вам в решении этой задачи.

И так речь пойдёт о Zip file creation class. Сам класс можно найти в phpMyAdmin, по крайней мере, я нашёл его именно там. Не вдаваясь в детали, рассмотрим основные функции класса:

addFile($data, $name, $time = 0)

Описание: добавление файла в архив.
Параметры:

  • $data – содержание файла
  • $name – имя файла в архиве, может содержать путь
  • $time – временная метка (timestamp), по умолчание текущая (не обязательный параметр)

file()

Описание: архивирует и возвращает данные в виде строки.

Для наглядности работы с классом приведём небольшой пример:

<?php
include zip.lib.php
$data = "текст файла";
$name = "filename.txt";
$zipfile = new zipfile();
$zipfile->addFile($data, $name);
$zipdata = $zipfile->file();
$fp = fopen ("filename.zip", "w+");
fwrite($fp, $zipdata);
fclose($fp);
?>

Не вдаваясь в очевидное, скажу лишь, что мы создали объект $zipfile, заархивировали данные $data функцией zipFile как файл filename.txt и получили архивированные данные функцией file(), которые сохранили как файл filename.zip. Вот и всё, удачи.

P.S.: если вы ищете архиватор WinZip, то его можно скачать здесь

P.P.S.: Если вы хотите сохранить файл с кириллическими именами, не забудьте сконвертировать их в досовскую кодировку cp866, к примеру так: $filename = iconv('windows-1251', 'cp866', $filename); (за подсказку спасибо Александру)

[показать]

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник {004} PHP архивация файлов в формате ZIP | WiiArt - Позитив + Креатив + Любовь = Жизнь удалась! | Лента друзей WiiArt / Полная версия Добавить в друзья Страницы: раньше»