Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Просмотр RAR-архивов
// вспомогательная функция, выводит размер файла
function sizer($s){
$o=1;
while($s>1024){
$s = round($s / 1024, 1);
$o++;
}
switch($o){
case(1):
$o='b'; break;
case(2):
$o='Kb';break;
case(3):
$o='Mb';break;
case(4):
$o='Gb';break;
}
return $s.$o;
}
$filepath = 'test.rar';
$rar = rar_open($filepath) or die('Ошибка открытия RAR архива');
$list = rar_list($rar);
$c = count($list);
echo 'Файлов в архиве: '.$c.'<hr/>';
for($i = 0; $i<$c; $i++) {
echo $list[$i]->name.
' ['.sizer($list[$i]->unpacked_size).
'/'.sizer($list[$i]->packed_size).']<br/>';
}
rar_close($rar);
Распаковка RAR архива
function unpack($f){
$rar_file = rar_open($f);
$path1= fb_tmpdir . 'tmp_'.basename($f); if(!is_dir($path1))mkdir($path1); // создаю временный каталог
$list = rar_list($rar_file);
$f2='';
foreach($list as $f1){
if(in_array(substr($f1, -4),array('.csv','.xls'))) {
$entry = rar_entry_get($rar_file, $f1);
// $entry = $rar_file->getEntry('file2.txt');
// $entry->extract($path1); // extract to the current dir
$f2=fb_tmpdir.$f1; @unlink($f2);
$entry->extract(false,$f2);
}
}
rar_close($rar_file);
rmdir($path1); // удаляю временный каталог
if(is_file($f2)){
unlink($f); // удаляю исходный архив
return $f2;
}
return false
}
.
Прокомментировать/Отблагодарить