Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ZIP в PHP, Чтение ZIP 
:(
    Опции темы
Edmond
Дата 12.8.2002, 20:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Приветствую.

Пробывал создание zip при помощи zlib изрядно хорошо получаеться.
Однако, хочеться мне чтения архива.
Проблемма вот в чём.

Функция gzcopressed возращает сжатые данные, где в zip урезаются первік два байта (сигнатура) и последние четыре (думаю crc).

Когда генеришь zip отрезаешь эти данные и всё. Однако, когда надо раскрыть архив в функцию gzunxx естественно надо передать эти самые отрезанные байты. С сигнатурой проблем нет, однако последние четыре байта.... Они зависят от данных архива, и получить их при помощи crc32 нельзя...

Кто поможет моему горю...
  Вверх
Sattu
Дата 14.8.2002, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 7.8.2002
Где: Західна Україна

Репутация: нет
Всего: 4



Cалют, Edmond.
Попробуй так, может и получиться :) .
Код

<?

$filename = tempnam ('/tmp', 'zlibtest').'.gz';
print "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";

// open file for writing with maximum compression
$zp = gzopen($filename, "w9");

// write string to file
gzwrite($zp, $s);

// close file
gzclose($zp);

// open file for reading
$zp = gzopen($filename, "r");

// read 3 char
print gzread($zp, 3);

// output until end of the file and close it.
gzpassthru($zp);

print "\n";

// open file and print content (the 2nd time).
if (readgzfile($filename) != strlen($s)) {
       echo "Error with zlib functions!";
}
unlink($filename);
print "</pre>\n</h1></body>\n</html>\n";

?>

--------------------
тссссс.... «ЖЖ»
PM WWW ICQ AOL   Вверх
Edmond
Дата 15.8.2002, 20:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подожди, это что?
Это чтение gz файла, а я zip просил :(
  Вверх
Sattu
Дата 16.8.2002, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 7.8.2002
Где: Західна Україна

Репутация: нет
Всего: 4



А... ну дык... прости. Не понял. Как работать с зипом не знаю :( .
--------------------
тссссс.... «ЖЖ»
PM WWW ICQ AOL   Вверх
Sattu
Дата 16.8.2002, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 7.8.2002
Где: Західна Україна

Репутация: нет
Всего: 4



Ага, нашел пример...
Только для него надо иметь библиотеку ZZIPlib (http://zziplib.sourceforge.net/ или http://www.php4win.com/), но библиотека должна (я так думаю) включаться в стандартный дистрибутив РНР. Сам я zip/gz не юзаю.
Код

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {

   while ($zip_entry = zip_read($zip)) {
       echo "Name:               " . zip_entry_name($zip_entry) . "\n";
       echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
       echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
       echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

       if (zip_entry_open($zip, $zip_entry, "r")) {
           echo "File Contents:\n";
           $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
           echo "$buf\n";

           zip_entry_close($zip_entry);
       }
       echo "\n";

   }

   zip_close($zip);

}

?>

PS. Желаю удачи.
--------------------
тссссс.... «ЖЖ»
PM WWW ICQ AOL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.