Страница 1 из 1

Архивация

Добавлено: 05 май 2007, 20:17
Nikoshka
Появилась такая проблема, есть gzip для чтения\записи и есть zip только для чтения.
Первый сжимает очень слабо т.е. где-то 10% получается для текстового файла.

Но zip, который прекрасно жмет в php доступен только для чтения. Может есть какой-то метод сжать файл сильнее? Файл текстовый.

Re: Архивация

Добавлено: 06 май 2007, 14:40
Oscar
[syntax="PHP"]<?php
define("DEBUG", true);

$filename = "test.php";
$archive = $filename.".gz";

$text = implode('', file($filename));
$fp = fopen($archive, "w+");
fwrite($fp, gzcompress($text, 9));
fclose($fp);

echo "compression: ".round(filesize($archive)*100/filesize($filename))."%<hr>\n";

if (DEBUG) {
$result = implode('', file($archive));
$result = gzuncompress($result);
$result = htmlspecialchars($result);
echo "<pre>".$result."</pre>\n";
}
?>[/syntax]

у меня такая конструкция сжимает саму себя вполовину

Так же советую посмотреть сюда: http://php.net/zip
там описаны методы работы с ZIP файлами

кроме того, можно попробовать использовать exec("внешний зип")

Re: Архивация

Добавлено: 06 май 2007, 15:11
Absurd
Есть еще модуль для PHP который жмет в bzip2

http://ru2.php.net/manual/en/ref.bzip2.php