Вход Регистрация
Файл: zip.php
Строк: 181
<?php

// mod Gemorroj

require 'moduls/config.php';
require 
'moduls/PEAR/pclzip.lib.php';
require 
'moduls/header.php';

###############Если zip выключен##########
if (!$setup['zip_change']) {
    
error('Not found');
}
###############Проверка переменных###############


$onpage get2ses('onpage');
if (
$onpage 3) {
    
$onpage $setting['onpage'];
}

$prew get2ses('prew');
if (
$prew != && $prew != 1) {
    
$prew $setup['preview'];
}

$banner='';
$out='';
$Reklames = new Reklames(); // Создаем экземпляр класса Reklames
$out.= $Reklames->Top();
$banner.= $Reklames->Bottom();
$banner.=$Reklames->Banner();

$id abs($_GET['id']);
$page = isset($_GET['page']) ? abs($_GET['page']) : 1;
if (
$page 1) {
    
$page 1;
}
$start = isset($_GET['start']) ? intval($_GET['start']) : 0;


$d mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = ' $id$mysql));
if (!
file_exists($d['path'])) {
    
error('File not found');
}
###############Получаем каталог#############
$filename pathinfo($d['path']);
$ext strtolower($filename['extension']);
if (
$ext != 'zip') {
    
error('It is not ZIP archive');
}
$dir $filename['dirname'] . '/';
$back mysql_fetch_assoc(mysql_query("SELECT * FROM `files` WHERE `path` = '" mysql_real_escape_string($dir$mysql) . "'"$mysql));
###############Заголовок###################
echo '<div class="mainzag"><strong>' $filename['basename'] . '</strong></div>'.$out.'<div class="row">';

$title .= $_SESSION['language']['view archive'] . $filename['basename'];
###############Содержимое###################
if (!isset($_GET['action'])) {
    
$zip = new PclZip($d['path']);
    
    if (!
$list $zip->listContent()) {
        
error('Error: ' $zip->errorInfo(true));
    }
    
$listcontent $sizelist $savelist '';
    
$aa sizeof($list);
    for (
$i 0$i $aa; ++$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 round($sizelist2 10242);
    
$preview $savelist;
    
    
$preview explode('|'$preview);
    
    
$count sizeof($preview) - 1;
    echo 
$_SESSION['language']['all files'] . ': ' $count '<br/>' $_SESSION['language']['the unpacked archive'].': ' $obkb ' kb</div><div class="row">';
    if (
$page 1) {
        
$page 1;
    }
    
$n 0;
    
$pages ceil($count $onpage);
    if (!
$pages) {
        
$pages 1;
    }
    if (
$page) {
        
$n = ($onpage $page) - $onpage;
    }
    
// if ($count == 0) echo 'Empty';
    
$sizefiles explode('|'$sizelist);
    
$selectfile explode('|'$savelist);
    
//------------------------------------------------------------------------------------------
    
for ($i 1$i <= $onpage; ++$i) {
        if (empty(
$selectfile[$n])) {
            
$n++;
            continue;
        }
        
$path $selectfile[$n];
        
$fname preg_replace('#.*[\/]#'''$path);
        
$zdir preg_replace('#[\/]?[^\/]*$#'''$path);
        echo 
$zdir '/<a href="' DIRECTORY 'zip/preview/' $id '/' $path '/">' $fname '</a>';
        if (
$sizefiles[$n]) {
            echo 
' [' round($sizefiles[$n] / 10242) . 'kb]';
        }
        echo 
'<br/>';
        
$n++;
    }
    
//------------------------------------------------------------------------------------------

    
echo '</div>';

    if (
$pages 1) {
        echo 
'<div class="row">' $_SESSION['language']['pages'] . ': ';
        
$asd $page 2;
        
$asd2 $page 3;
        if (
$asd $count && $asd && $page 3) {
            echo 
'<a href="' DIRECTORY 'zip/' $id '&amp;page=1">1</a> ... ';
        }
        for (
$i $asd$i $asd2; ++$i) {
            if(
$i $count && $i 0) {
                if (
$i $pages ) {
                    break;
                }
                if (
$page == $i) {
                    echo 
'<strong>' $i '</strong> ';
                } else {
                    echo 
'<a href="' DIRECTORY 'zip/' $id '/' $i '">' $i '</a>, ';
                }
            }
        }
        if (
$i <= $pages) {
            if (
$asd2 $count) {
                echo 
' ... <a href="' DIRECTORY 'zip/' $id '/' $pages '">' $pages '</a>, ';
            }
        }
        echo 
'<br/></div>';
    }

    echo 
'<div class="row">';

} else if (
$_GET['action'] == 'preview') {
    if (
strpos($_GET['open'] , '..') !== false || strpos($_GET['open'] , './') !== false) {
        
error($setup['hackmess']);
    }

    
$title .= ' - ' $_GET['open'];
    echo 
'<strong>' $_SESSION['language']['file'] . ': <a href="' DIRECTORY 'zip/down/' $id '/' str_replace('"''&quot;'$_GET['open']) . '">' $_GET['open'] . '</a></strong><br/>';

    
$mime ext_to_mime(pathinfo($_GET['open'], PATHINFO_EXTENSION));

    if (
$mime == 'image/png' || $mime == 'image/gif' || $mime == 'image/jpeg' || $mime == 'image/bmp') {
        
$f $setup['zppath'] . '/' str_replace('/''--'iconv_substr(strstr($d['path'], '/'), 1) . '_' strtolower($_GET['open']));
        if (!
file_exists($f)) {
            
$zip = new PclZip($d['path']);
            
$content $zip->extract(PCLZIP_OPT_BY_NAME$_GET['open'], PCLZIP_OPT_EXTRACT_AS_STRING);
            
file_put_contents($f$content[0]['content']);
        }
        echo 
'<img src="' DIRECTORY $f '" alt="' $_GET['open'] . '"/><br/>';
    } else if (
$mime == 'text/plain') {
        
$zip = new PclZip($d['path']);
        
$content $zip->extract(PCLZIP_OPT_BY_NAME$_GET['open'], PCLZIP_OPT_EXTRACT_AS_STRING);
        
$content str_to_utf8($content[0]['content']);
        echo 
$_SESSION['language']['lines'] . ': ' substr_count($content"n");

        
$pages floor(iconv_strlen($content) / $setup['lib']);
        
$content iconv_substr($content$page $setup['lib'] - $setup['lib'], $setup['lib'] + 64);

        if (
$page 1) {
            
$i 0;
            foreach (
str_split($content) as $v) {
                if (
$v == ' ' || $v == "n" || $v == "r" || $v == "t") {
                    break;
                }
                
$i++;
            }
            
$content substr($content$i);
        }

        
        if (
$setup['lib_str']) {
            echo 
'<pre class="row2">' wordwrap(htmlspecialchars($contentENT_NOQUOTES), $setup['lib_str'], "n"false) . '</pre>' go($page$pagesDIRECTORY 'zip/preview/' $id '/' $_GET['open']);
        } else {
            echo 
'<pre class="row2">' htmlspecialchars($contentENT_NOQUOTES) . '</pre>' go($page$pagesDIRECTORY 'zip/preview/' $id '/' $_GET['open']);
        }
    } else {
        echo 
'<span class="no">' $_SESSION['language']['file unavailable for viewing'] . '</span>';
    }

} else if (
$_GET['action'] == 'down') {
    if (
strpos($_GET['open'] , '..') !== false or strpos($_GET['open'] , './') !== false) {
        
error($setup['hackmess']);
    }

    
ob_end_clean();

    
$zip = new PclZip($d['path']);
    
$mime ext_to_mime(pathinfo($_GET['open'], PATHINFO_EXTENSION));
    
header('Content-Type: ' $mime);
    if (
$mime == 'text/plain') {
        
$f $zip->extract(PCLZIP_OPT_BY_NAME$_GET['open'], PCLZIP_OPT_EXTRACT_AS_STRING);
        echo 
str_to_utf8($f[0]['content']);
    } else {
        
$zip->extract(PCLZIP_OPT_BY_NAME$_GET['open'], PCLZIP_OPT_EXTRACT_IN_OUTPUT);
    }

    exit;
}

echo 
'</div><div class="foot"><a href="' DIRECTORY 'view/' $id '">' $_SESSION['language']['go to the description of the file'] . '</a> | <a href="' DIRECTORY $back['id'] . '">' $_SESSION['language']['go to the category'] . '</a> | <a href="' DIRECTORY '">' $_SESSION['language']['downloads'] . '</a> |</div>'.$banner;

require 
'moduls/foot.php';

?>
Онлайн: 1
Реклама