Просмотр RAR-архивов — PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// вспомогательная функция, выводит размер файла
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.'
';
  
for($i = 0; $i<$c; $i++) {
   echo $list[$i]->name.
    ' ['.sizer($list[$i]->unpacked_size).
    '/'.sizer($list[$i]->packed_size).']
';
}
rar_close($ra