Файл: archive.php
Строк: 79
<?php
define('ROOT','./');
define('SYS','../../');
define('GCMS',true);
require_once (ROOT.'system/power.php');
$diz -> head('Просмотр архива');
$diz -> title('<b>Просмотр архива</b>');
$row = $db -> query("SELECT TRIM(`infolder`) FROM `load_files` WHERE `id`='".$id."'")-> fetch_row();
if (file_exists($row[0])) {
$ext = pathinfo($row[0], PATHINFO_EXTENSION);
if ($ext == 'zip') {
require_once('power/pclzip.lib.php');
if (isset($_GET['view'])) {
if (strpos($_GET['view'], './') !== false || strpos($_GET['view'], '..') !== false) {
exit;
}
$zip = new PclZip($row[0]);
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $_GET['view'], PCLZIP_OPT_EXTRACT_AS_STRING);
$content = $content[0]['content'];
$letters = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л',
'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы',
'ь', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К',
'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ',
'Ы', 'Ь', 'Э', 'Ю', 'Я');
$utf = false;
for ($b = 0; $b < 66; $b ++) {
if (strstr($content, $letters[$b]) !== false) {
$utf = true;
}
}
$preview2 = explode("rn", $content);
$count = count($preview2);
$ext = pathinfo($_GET['view'], PATHINFO_EXTENSION);
if ($ext == 'php' || $ext == 'html' || $ext == 'js' || $ext == 'sql' || $ext == 'htm' || $ext == 'wml' || $ext == 'dat' || $ext == 'txt' || $ext == 'log' || $ext == 'htaccess') {
$msg .= '<div class="spisok">
<b>Файл:</b> '.basename($_GET['view']).'<br/>
<b>Строк:</b> '.$count.'</div>';
if ($utf) {
echo highlight_string(trim($content), true);
} else {
echo highlight_string(iconv('windows-1251', 'utf-8', trim($content)));
}
$msg .= '<div class="levo">'.$diz -> img('back.png').'<a href="'.SYS.'load/'.$id.'.archive">Назад</a></br>';
$msg .= ''.$diz -> img('back.png').'<a href="'.SYS.'load/view/'.$id.'/">К файлу</a>';
$msg .= '</br>'.$diz -> img('home.png').'<a href="/index.php">На главную</a></div>';
#####Копирайт#######
require_once (ROOT.'system/kopy.php');
$diz -> out($msg);
} else {
header('Location: ../'.$id.'.archive');
}
} else {
$zip = new PclZip($row[0]);
if (!$list = $zip->listContent()) {
error('Ошибка: '.$zip->errorInfo(true));
}
for ($i = 0; $i < count($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);
$preview = $savelist;
$preview = explode('|', $preview);
$count = count($preview) - 1;
$msg .= '<div class="spisok">
<b>Всего файлов:</b> '.$count.'<br/>
<b>Вес распакованного архива:</b> '.$func ->size($sizelist2).'</div>';
$sizefiles = explode('|', $sizelist);
$selectfile = explode('|', $savelist);
$page = isset($_GET['page']) ? abs(intval($_GET['page'])) : 1;
$all = ceil($count / 10);
$i = ($page * 10 - 10);
if ($count < $i) {
$i = 0;
}
$end = $i + 10;
if ($count < $end) {
$end = $count;
}
$msg .= '<div class="menu">';
for (; $i <= $end; $i ++) {
if (empty($selectfile[$i])) {
continue;
}
$path = $selectfile[$i];
$fname = preg_replace('#.*[\/]#', '', $path);
$zdir = preg_replace('#[\/]?[^\/]*$#', '', $path);
$ext = pathinfo($path, PATHINFO_EXTENSION);
if ($ext == 'php' || $ext == 'html' || $ext == 'js' || $ext == 'sql' || $ext == 'htm' || $ext == 'wml' || $ext == 'dat' || $ext == 'txt' || $ext == 'log' || $ext == 'htaccess') {
$msg.= $zdir.'/<a href="./'.$id.'.archive/path,'.$path.'">'.$fname.'</a>';
} else {
$msg .= $zdir.'/'.$fname;
}
$msg .='<br/>';
}
$msg .= '</div>';
$msg .= '</div>';
$msg .= '<div class="levo">'.$diz -> img('back.png').'<a href="view/'.$id.'/">Назад</a>';
$msg .= '</br>'.$diz -> img('home.png').'<a href="/index.php">На главную</a></div>';
#####Копирайт#######
require_once (ROOT.'system/kopy.php');
$diz -> out($msg);
}
} else {
exit;
}
} else {
$msg .='Файл не найден!';
}
?>