Файл: wapxl.ru/user/messages/zip.php
Строк: 101
<?
require '/shaxty/zip.php';
if(!empty($_SESSION["onpagezip"]) AND !empty($_GET['onpagezip'])){
$_SESSION["onpagezip"]=$_GET['onpagezip'];
}elseif(empty($_SESSION["onpagezip"]) AND !empty($_GET['onpagezip'])){
$onpagezip=$_GET['onpagezipt'];
session_register ("onpagezip") ;}
if(!empty($_SESSION["prew"]) AND !empty($_GET['prew']))
$_SESSION["prew"]=$_GET['prew'];
elseif(empty($_SESSION["prew"]) AND !empty($_GET['prew'])){
$prew=$_GET['prew'];
session_register ("prew") ;}
$pagezip = isset ($_GET['pagezip']) ? intval($_GET['pagezip']) : 1;
$start = intval($_GET['start']);
$onpagezip = 10;
$path = isset ($_GET['file']) ? '../sites/'.core::$site['domain'].'/modul_files/privat/'.htmlspecialchars(urldecode($_GET['file'])) : NULL;
$file = isset ($_GET['file']) ? htmlspecialchars(urldecode($_GET['file'])) : NULL;
echo '<div class="col-md-8 col-sm-12 col-xs-12"><div class="panel panel-default">';
echo '
<div class="panel-body">';
echo '<div class="panel-heading">Просмотр архива <b>'.basename($path).'</b></div>';
###############Содержимое###################
if(!$_GET['action'])
{
$zip = new PclZip($path);
if(!$list = $zip->listContent()) die('Ошибка: '.$zip->errorInfo(true));
for($i=0; $i<sizeof($list); $i++)
{
for(reset($list[$i]); $key = key($list[$i]); next($list[$i]))
{
$zfilesize = strstr($listcontent,'--size');
$zfilesize = str_replace('--size:','',$zfilesize);
$zfilesize = str_replace($zfilesize,$zfilesize.'|',$zfilesize);
$sizelist .= $zfilesize;
$listcontent = "[$i]--$key:".$list[$i][$key];
$zfile = strstr($listcontent,'--filename');
$zfile = str_replace('--filename:','',$zfile);
$zfile = str_replace($zfile,$zfile.'|',$zfile);
$savelist .= $zfile;
}
}
$sizefiles2 = explode('|',$sizelist);
$sizelist2=array_sum($sizefiles2);
$obkb = file_size($sizelist2);
$preview=$savelist;
$preview = explode('|',$preview);
$count = count($preview)-1;
echo 'Всего файлов: '.$count.'<br />Вес распакованного архива: '.$obkb.'<br />';
echo '<dl><dt></dt></dl>';
if (!isset($pagezip)) $pagezip=1;
$n = 0;
$pagezips = ceil($count/$onpagezip);
if(!$pagezips) $pagezips = 1;
if ($pagezip) $n = ($onpagezip*$pagezip)-$onpagezip;
if ($count == 0) echo 'Пока пусто :(';
$sizefiles = explode('|',$sizelist);
$selectfile = explode('|',$savelist);
$k_page=func::k_page($count,$onpage);
//------------------------------------------------------------------------------------------
for ($i = 1; $i<=$onpagezip; $i++)
{
if (empty($selectfile[$n]))
{
$n++;
continue;
}
$path = $selectfile[$n];
$fname = $path;
echo $zdir.'/<a href="?mod=zip&file=' . $file . '&action=preview&open='.$path.'" class="href">'.$fname.'</a>';
if($sizefiles[$n]!='0') echo ' ['.round($sizefiles[$n]/1024,2).'kb]';
echo'<br>';
$n++;
}
echo '<dl><dt></dt></dl>';
if ($k_page>1){
func::nav("?",$k_page,$page); // Вывод страниц
}
}
###############Просмотр файла###################
if($_GET['action']=='preview')
{
if(strpos($_GET['open'] , '..') !== false or strpos($_GET['open'] , './') !== false) die($hackmess);
$_GET['open'] = func::checkin($_GET['open']);
$zip = new PclZip($path);
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $_GET['open'] ,PCLZIP_OPT_EXTRACT_AS_STRING);
$content = $content[0]['content'];
$letters=array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я','А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я');
for($b=0; $b<66; $b++)
{
if(strstr($content,$letters[$b])!== false){$utf='ok';}
}
$preview2 = explode("rn",$content);
$count = count($preview2);
function highlight_code2($code)
{
$code=trim($code);
return highlight_string($code,true);
}
echo 'Файл: '.$_GET['open'].'<br />Строк: '.$count.'<br />';
echo '<dl><dt></dt></dl>';
if($utf=='ok') echo highlight_code2($content); else echo highlight_code2(iconv('windows-1251','utf-8',$content));
echo '<dl><dt></dt></dl>';
}
echo '</div></div>';
?>