Может кто то работал плотно с ZIP архивами?
Задача - сделать на лету запаролированный архив средствами PHP. Всевозможные exec, system, passthru не канают.
Примерно я разобрался, как это можно реализовать, но время жмет, мож кто подскажет полезного чего...
Спустя 8 минут, 21 секунда (8.11.2010 - 16:33) Basili4 написал(а):
Ну вот что то нашел может поможет http://koz1024.net/php/ziparchive.html
Спустя 7 минут, 36 секунд (8.11.2010 - 16:41) Invis1ble написал(а):
Basili4
Классная статья, надо будет попробовать код в действии..
Классная статья, надо будет попробовать код в действии..
Спустя 1 минута, 27 секунд (8.11.2010 - 16:42) Семён написал(а):
twin, никак без команд UNIX
Спустя 1 минута, 11 секунд (8.11.2010 - 16:43) Basili4 написал(а):
Invis1ble
я бы не был столь категоричным судя по коду
ture портит все отношение но суть излагает
я бы не был столь категоричным судя по коду
if ($zip->open('your_archive.zip') === ture){
$zip->extractTo('папка для разархивирования');
//а это - закрытие архива по окончании работы с ним. Хороший тон программирования.
$zip->close();
}else{
echo 'Не могу найти файл архива!';
ture портит все отношение но суть излагает
Спустя 6 минут, 13 секунд (8.11.2010 - 16:50) Invis1ble написал(а):
Basili4
ну да, на эту проверку я тоже обратил внимание )
Просто никогда не видел примеров работы с архивами - поэтому заинтересовался
ну да, на эту проверку я тоже обратил внимание )
Просто никогда не видел примеров работы с архивами - поэтому заинтересовался
Спустя 11 минут, 58 секунд (8.11.2010 - 17:02) twin написал(а):
Спасибо. Ничего утешительного, но и то приятно.
Бум думать.
Бум думать.
Спустя 2 часа, 1 минута (8.11.2010 - 19:03) koz1024 написал(а):
Цитата (Basili4 @ 8.11.2010 - 13:43) |
Invis1ble я бы не был столь категоричным судя по коду if ($zip->open('your_archive.zip') === ture){ ture портит все отношение но суть излагает |
И где Вы там ture увидели?
А если серьёзно, спасибо что заметили, поправил
Спустя 10 минут, 35 секунд (8.11.2010 - 19:13) DmitryOpalev написал(а):
Извините, что не в тему пишу, но... twin спрашивает?
Прикольно ^^
Прикольно ^^
Спустя 4 часа, 45 минут, 3 секунды (8.11.2010 - 23:58) linker написал(а):
twin
А не хочешь раром замутиться?
А не хочешь раром замутиться?
Спустя 3 минуты, 30 секунд (9.11.2010 - 00:02) twin написал(а):
RAR лецензию затребует. Да и финт в том, что для него в PHP библиотеки нет.
А exe нет возможности запустить.
Нигде не могу толковых доков найти...
Вроде не так сложно должно быть, алгоритм шифрации есть, нужно с заголовками файла разобраться. Пока затык.
А exe нет возможности запустить.
Нигде не могу толковых доков найти...
Вроде не так сложно должно быть, алгоритм шифрации есть, нужно с заголовками файла разобраться. Пока затык.
Спустя 1 минута, 33 секунды (9.11.2010 - 00:03) linker написал(а):
Спустя 30 минут, 51 секунда (9.11.2010 - 00:34) twin написал(а):
Ну там нет такого. Да и архивации чет я так и не вкурил... Разархивация то есть, я знаю.
Не, не то.
Не, не то.
Спустя 6 часов, 13 минут, 45 секунд (9.11.2010 - 06:48) phz написал(а):
twin
Оно? Спешу сейчас... посмотри:
Оно? Спешу сейчас... посмотри:
<?php
try
{
$fname = "zip-generated-from-php-" . date('Y-m-d-His') . ".zip";
$zipOutput = "c:\\temp\\" . $fname;
$zipfact = new COM("Ionic.Zip.ZipFile");
$zip->Name = $zipOutput;
$dirToZip= "c:\\temp\\psh";
# Encryption: 3 => 256-bit AES.
# 2 => 128-bit AES.
# 1 => PKZIP (Weak).
# 0 => None
$zip->Encryption = 3;
$zip->Password = "AES-Encryption-Is-Secure";
$zip->AddDirectory($dirToZip);
$zip->Save();
$zip->Dispose();
if (file_exists($zipOutput))
{
header('Cache-Control: no-cache, must-revalidate');
header('Content-Type: application/x-zip');
header('Content-Disposition: attachment; filename=' . $fname);
header('Content-Length: ' . filesize($zipOutput));
readfile($zipOutput);
unlink($zipOutput);
}
else
{
echo '<html>';
echo ' <head>';
echo ' <title>Calling DotNetZip from PHP through COM</title>';
echo ' <link rel="stylesheet" href="basic.css"/>';
echo ' </head>';
echo '<body>';
echo '<h2>Whoops!</h2>' . "<br/>\n";
echo '<p>The file was not successfully generated.</p>';
echo '</body>';
echo '</html>';
}
}
catch (Exception $e)
{
echo '<html>';
echo ' <head>';
echo ' <title>Calling DotNetZip from PHP through COM</title>';
echo ' <link rel="stylesheet" href="basic.css"/>';
echo ' </head>';
echo '<body>';
echo '<h2>Whoops!</h2>' . "<br/>\n";
echo '<p>The file was not successfully generated.</p>';
echo '<p>Caught exception: ', $e->getMessage(), '</p>', "\n";
echo '<pre>';
echo $e->getTraceAsString(), "\n";
echo '</pre>';
echo '</body>';
echo '</html>';
}
?>
Спустя 1 час, 36 минут, 8 секунд (9.11.2010 - 08:24) Семён написал(а):
Phz, Посмотри на строку, а затем посмотри в 1-ый пост.
$zipfact = new COM("Ionic.Zip.ZipFile");
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.
Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.