Файл: pan/zip.php
Строк: 111
<?php
/*
Автор скрипта: Juse
Модификация: Jahak
*/
include_once 'config.php';
include_once 'head.php';
include_once 'Core/pclzip.lib.php';
// echo 'Просмотр архива '.strtolower(substr($_GET['arch'], 1 + strrpos($_GET['arch'], "/"))).'<br />';
if(!$_GET['arch']){
echo '<div class="rmenu">Ошибка! Не выбран архив!</div>';
include_once "foot.php";
exit;
}
$arch = $_GET['arch'];
if (!$_GET['action']){
$zip = new PclZip($_GET['arch']);
if (($list = $zip->listContent()) != 0){
sort($list);
$countlist = count($list);
$zfilename = array();
$zfilesize = array();
$zfolder = array();
for ($i=0; $i<$countlist; $i++){
$zfilename[] = $list[$i]['filename'];
$zfilesize[] = $list[$i]['size'];
$zfolder[] = $list[$i]['folder'];
}
$totalsize = array_sum($zfilesize);
$total = count($zfilename);
echo '<div class="gmenu">Название <b>'.strtolower(substr($arch, 1 + strrpos($arch, "/"))).'</b><br />
Всего файлов: '.$total.'<br />Вес распакованного архива: '.formatsize($totalsize).'</div>';
$start = (int)$_GET['start'];
if($start < 0 || $start > $total){
$start = 0;
}
if ($total < $start + $udata[2]){
$end = $total;
} else {
$end = $start + $udata[2];
}
echo '<div class="bmenu">';
for ($i = $start; $i < $end; $i++){
if($zfolder[$i]=="1"){
$zfilename[$i] = substr($zfilename[$i], 0, -1);
echo '<img src="data:image/gif;base64,R0lGODlhEAAQAKIHAPHx8f//zJmZAP/MmQAAAMzMZv//mf///yH5BAEAAAcALAAAAAAQABAAAANFeLrcKxAS90AIxojpRPlgEUWKcJ3oZRSTmb2wMbCHG8s4bd+DrGOwnnDVAgZxs+JrKEzWAkzkwOkJWUEcgnbL5VK+YHACADs=" alt="dir" /> <b>Директория '.$zfilename[$i].'</b><br />';
} else {
$arrext = array('.xml', '.wml', '.asp', '.aspx', '.shtml', '.htm', '.phtml', '.html', '.xhtml', '.php', '.htt', '.dat', '.tpl', '.htaccess', '.py', '.pyw', '.exe', '.jad', '.jar', '.js', '.jsp', '.mid', '.mmf', '.mp3', '.psd', '.rar', '.zip', '.css', '.txt', '.sql', '.swf', '.3gp', '.mp4', '.avi', '.ttf', '.gif', '.png', '.bmp', '.wbmp', '.jpg', '.jpeg', '.xls', '.doc', '.ppt', '.wmv');
$ext = strtolower(strrchr($zfilename[$i], "."));
echo '<img src="img/'.icons($ext).'" alt="image" /> ';
if (in_array($ext, $arrext)) {
echo '<a href="zip.php?action=preview&arch='.$arch.'&open='.$zfilename[$i].'&start='.$start.'">'.$zfilename[$i].'</a> ('.formatsize($zfilesize[$i]).')<br />' . PHP_EOL;
} else {
echo '<a href="zip.php?action=preview&arch='.$arch.'&open='.$zfilename[$i].'&start='.$start.'">'.$zfilename[$i].'</a> ('.formatsize($zfilesize[$i]).')<br />' . PHP_EOL;
}
}
}
echo '</div>
<div class="menu">';
if($total>0){
$ba = ceil($total/$udata[2]);
$ba2 = $ba*$udata[2]-$udata[2];
echo 'Страницы:';
$asd = $start-($udata[2]*3);
$asd2 = $start+($udata[2]*4);
if($asd<$total && $asd>0){
echo ' <a href="zip.php?start=0&arch='.$arch.'&">1</a> ... ';
}
for($i=$asd; $i<$asd2;){
if($i<$total && $i>=0){
$ii = floor(1+$i/$udata[2]);
if ($start==$i) {
echo ' <b>('.$ii.')</b>';
} else {
echo ' <a href="zip.php?start='.$i.'&arch='.$arch.'&">'.$ii.'</a> ';
}
}
$i = $i+$udata[2];
}
if($asd2<$total){
echo ' ... <a href="zip.php?start='.$ba2.'&arch='.$arch.'&">'.$ba.'</a>';
}
}
} else {
echo '<div class="rmenu">Невозможно открыть архив!<br />
Ошибка: '.$zip->errorInfo(true).'</div>';
}
echo '<br />* <a href="index.php?action=viewfile&fid='.$arch.'&">Вернуться</a><br />' .
'* <a href="index.php">Файловый менеджер</a></div>';
}
////////////////////////////////// Просмотр файла ////////////////////////////////
if($_GET['action']=="preview"){
$zip = new PclZip($arch);
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $_GET['open'], PCLZIP_OPT_EXTRACT_AS_STRING);
$content = $content[0]['content'];
$preview = explode("rn", $content);
$count = count($preview);
$ext = strtolower(substr($_GET['open'], strrpos($_GET['open'], '.') + 1));
echo '<div class="gmenu">Название архива: <b>'.strtolower(substr($arch, 1 + strrpos($arch, "/"))).'</b><br />
Открытый файл: <b>'.$_GET['open'].'</b></div>';
if ($ext!="gif" && $ext!="jpg" && $ext!="png"){
//---------------------- Файл ----------------------//
echo '<div class="bmenu">Всего строчек: '.(int)$count.'
<div class="list2">';
if(is_utf($content)){
echo highlight_code($content);
} else {
echo highlight_code(win_to_utf($content));
}
echo '</div>« <a href="zip.php?arch='.$arch.'&start='.$_GET['start'].'&">Назад</a></div>';
} else {
//-------------------- Картинка --------------------//
if($_GET['create']=="image"){
ob_end_clean();
ob_clean();
header('Content-Disposition: attachment; filename="image.'.$ext.'";');
if($ext=="jpg"){$ext="jpeg";}
header("Content-type: image/$ext");
header("Content-Length: ".strlen($content));
echo $content;
exit;
}
echo 'Image:<br /> <a href="zip.php?action=preview&arch='.$arch.'&open='.$_GET['open'].'&create=image"> <img src="zip.php?action=preview&arch='.$arch.'&open='.$_GET['open'].'&create=image" alt=""></a><br />
« <a href="zip.php?arch='.$arch.'&start='.$_GET['start'].'&">Назад</a><br />';
//--------------------------------------------------//
}
}
include_once 'foot.php';