Главная страница

Реферат по дисциплине «Разработка клиент-серверных приложений» на тему «Функции сжатия Bzip2». Р_СавельевНС_БПИ-20-9. Функции сжатия Bzip2


Скачать 36.36 Kb.
НазваниеФункции сжатия Bzip2
АнкорРеферат по дисциплине «Разработка клиент-серверных приложений» на тему «Функции сжатия Bzip2
Дата04.06.2022
Размер36.36 Kb.
Формат файлаdocx
Имя файлаР_СавельевНС_БПИ-20-9.docx
ТипРеферат
#569739

…Министерство науки и высшего образования РФ
ФГАОУ ВПО

Национальный исследовательский технологический университет «МИСиС»
Институт Информационных технологий и компьютерных наук (ИТКН)

Кафедра Инфокоммуникационных технологий (ИКТ)

Реферат

по дисциплине «Разработка клиент-серверных приложений»

на тему «Функции сжатия Bzip2»

Выполнил:
студент группы БПИ-20-9

Савельев Н.С.

Проверил:
……………………..


Москва, 2022

Оглавление


ВВЕДЕНИЕ 3

1. Основные понятия, связанные с bzip2. 3

2. Требования Bzip2 4

3. Функции Bzip2 4

3.1. Функция bzopen 4

3.2. Функция bzclose 5

3.3. Функция bzcompress 5

3.4. Функция bzdecompress 6

3.5. Функция bzerrno 7

3.6. Функция bzerror 7

3.7. Функция bzerrstr 8

3.8. Функция bzflush 9

3.9. Функция bzread 9

3.10. Функция bzwrite 10

ЗАКЛЮЧЕНИЕ 11

Источники информации 12


ВВЕДЕНИЕ


В наше время особенно актуальными являются вопросы хранения и передачи информации. Для экономии места на носителях, например, на жёстких дисках или SSD-накопителях, и для более быстрой передачи данных, путём уменьшения объёма передаваемой информации, существуют средства архивации данных. Одним из таких средств является модуль bzip2 в языке PHP.

Модуль bzip2 использует библиотеку, написанную Джулианом Севардом (Julian Seward), позволяющую проводить операции файлового ввода-вывода из архивов bzip2 (.bz2)[1].

1. Основные понятия, связанные с bzip2.


Архив — это файл, содержащий в себе один или несколько других файлов и/или папок, а также метаданные. Архивы используются для объединения множества любых файлов в единый файл-контейнер с целью удобства хранения и переноса информации или просто чтобы сжать данные. Для создания архивов и работы с ними используются программы-архиваторы.

В архивах может сохраняться структура папок, присутствовать служебная информация для обнаружения и исправления ошибок, комментарии и другая информация. В некоторых форматах архива данные могут шифроваться с помощью пароля.

Архивы особенно полезны как средство упаковки данных файловой системы и метаданных в единый файл для его хранения в компьютере или для пересылки по каналам, допускающим только пофайловую передачу, например для отправки структуры папок по электронной почте.

Помимо собственно архивирования, архивы часто используются для распространения пакетов программного обеспечения; в этом случае архив нередко называют дистрибутивным пакетом. Примеры архивов-дистрибутивов: deb для Debian, JAR для Java, APK для Android[3].

Файл .BZ2 — это сжатый архив, созданный с помощью стандартной утилиты сжатия данных bzip2 в UNIX-системах. Формат BZ2 использует алгоритм сжатия Барроуза-Уилера и обеспечивает высокую степень компрессии данных, часто применяется для распространения дистрибутивов программных пакетов в операционных системах Linux[2].

Архив BZ2 может включать только один файл. Для архивации нескольких файлов их сначала объединяют в архив TAR, который затем сжимают утилитой bzip2. Полученный в результате архив имеет расширение .tar.bz2.

Программное обеспечение bzip2 доступно в виде исходного кода, который может быть скомпилирован для других платформ[2].

2. Требования Bzip2


Модуль использует функции библиотеки » bzip2 (автор: Julian Seward) и требует bzip2/libbzip2 версий >= 1.0.x[4].

Чтобы использовать функции bzip2 в PHP, надо при компиляции указать дополнительную опцию --with-bz2[=DIR]. Для этого требуется библиотека bzip2/libbzip2 версии старше, чем 1.0. Этот модуль можно также подключить динамически[1].

3. Функции Bzip2

3.1. Функция bzopen


Описание

bzopen(string|resource $file, string $mode): resource|false

bzopen() открывает bzip2 (.bz2) файл для чтения либо записи.

Список параметров

file

Имя открываемого файла, или существующий ресурс потока.

mode

Поддерживаются только 'r' (чтение) и 'w' (запись). Все остальное заставит bzopen() вернуть false.

Возвращаемые значения

bzopen() возвращается указатель на открытый файл, либо false, если файл открыть не удалось.

Примеры


$file = "/tmp/foo.bz2";

$bz = bzopen($file, "r") or die("Не могу открыть $file для чтения");

bzclose($bz);

?>

[4]

3.2. Функция bzclose


Описание

bzclose(resource $bz): bool

Закрывает переданный указатель на файл bzip2.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

[4]

3.3. Функция bzcompress


Описание

bzcompress(string $data, int $block_size = 4, int $work_factor = 0): string|int

bzcompress() сжимает переданную строку и возвращает её в виде закодированных данных bzip2.

Список параметров

data

Сжимаемая строка.

block_size

Определяет размера блока, используемый при сжатии, должен быть числом в диапазоне от 1 до 9, где 9 даст наилучшее, но более ресурсоёмкое сжатие.

work_factor

Контролирует поведение фазы компрессии в худшем случае, когда входные данные являются часто повторяющимися. Параметр может принимать значения между 0 и 250, где 0 означает специальный случай.

Генерируемый результат не зависит от параметра work_factor и является одним и тем же.

Возвращаемые значения

Сжатая строка или код ошибки в случае неудачного завершения работы.

Примеры

$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

[4]

3.4. Функция bzdecompress


Описание

bzdecompress(string $data, bool $use_less_memory = false): string|int|false

bzdecompress() распаковывает переданную строку, содержащую сжатые bzip2 данные.

Список параметров

data

Распаковываемая строка.

use_less_memory

Если true, то будет использован альтернативный алгоритм распаковки, использующий меньше памяти (максимально требуемая память находится в районе 2300K), но работает приблизительно вдвое медленнее.

Возвращаемые значения

Распакованная строка или false или код ошибки в случае возникновения ошибки.

Примеры

$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

echo "Compressed String: ";
echo $bzstr;
echo "\n\n";

$str = bzdecompress($bzstr);
echo "Decompressed String: ";
echo $str;
echo "\n\n";
?>

[4]

3.5. Функция bzerrno


Описание

bzerrno(resource $bz): int

Возвращает код любой bzip2 ошибки, произошедшей с переданным указателем на файл.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешный открытый bzopen().

Возвращаемые значения

Возвращает код ошибки в виде целого числа.

[4]

3.6. Функция bzerror


Описание

bzerror(resource $bz): array

Возвращает ассоциативный массив с кодом и строкой ошибки, произошедшей с переданным файловым указателем.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешный открытый bzopen().

Возвращаемые значения

Возвращает ассоциативный массив с кодом ошибки с ключом errno, и строкой ошибки с ключом errstr.

Примеры

$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

[4]

3.7. Функция bzerrstr


Описание

bzerrstr(resource $bz): string

Возвращает строку с ошибкой bzip2, произошедшей с переданным указателем на файл.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешный открытый bzopen().

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке.

[4]

3.8. Функция bzflush


Описание

bzflush(resource $bz): bool

Функция должна принудительно записывать все буферизованные данные bzip2 в файл, на который ссылается указатель bz, но в libbz2 реализована как нулевая функция и поэтому ничего не делает.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешный открытый bzopen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

[4]

3.9. Функция bzread


Описание

bzread(resource $bz, int $length = 1024): string|false

bzread() читает из переданного bzip2 файлового указателя.

Чтение останавливается, если было считано length (несжатых) байт или был достигнут конец файла, в зависимости от того, что произойдёт раньше.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

length

Если не указан, bzread() будет считывать 1024 (несжатых) байта за один раз. За один раз может быть считано максимум 8192 байта.

Возвращаемые значения

Возвращает распакованные данные либо false в случае возникновения ошибки.

Примеры


$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Невозможно открыть $file");

$decompressed_file = '';
while (!feof($bz)) {
  $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "Содержимое $file: \n";
echo $decompressed_file;

?>

[4]

3.10. Функция bzwrite


Описание

bzwrite(resource $bz, string $data, ?int $length = null): int|false

bzwrite() записывает строку в переданный bzip2 файловый поток.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

data

Записываемые данные.

length

Если указан, запись остановится после length (несжатых) записанных байт, либо если был достигнут конец data, в зависимости от того, что произойдёт первым.

Возвращаемые значения

Возвращает количество записанных байт или false в случае возникновения ошибки.

Примеры

$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

[4]

ЗАКЛЮЧЕНИЕ


По итогам написания данной работы данной работы получилось подробно описать и разобрать на примерах работу функций сжатия bzip2, для работы с архивами формата bz2. Так же было разобрано для чего необходимо использовать архивацию данных и где она применяется.

Источники информации


  1. Сжатые файлы Bzip2 https://htmlweb.ru/php/php_bzip2.php

  2. Архивы .bz2 https://open-file.ru/types/bz2

  3. Архив (информатика) https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D0%B8%D0%B2_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)

  4. https://www.php.net/manual/ru/book.bzip2.php


написать администратору сайта