Файл: load/archive.php
Строк: 97
<?php
function page ($k_page = 1, $page = 1) {
    if (isset($_POST['page'])) {
        $page = abs(intval($_POST['page']));
    } else {
        $page = isset($_GET['page']) ? abs(intval($_GET['page'])) : 1;
    }
    
    if ($page < 1) {
        $page = 1;
    }
        
    if ($page > $k_page) {
        $page = $k_page;
    }
        
    return $page;
}
function k_page ($k_post = 0, $k_p_str = 10) {
    return $v_pages = ($k_post != 0) ? ceil($k_post / $k_p_str) : 1;
}
function navigation ($link = null, $k_page = 1, $page = 1, $hidden = false) {
        
    echo ($page > 1 ? '<a href="'.$link.'page.'.($page - 1).'">Назад</a> ' : 'Назад').' | '.($k_page > $page ? ' <a href="'.$link.'page.'.($page + 1).'">Далее</a>' : 'Далее');
    
    if ($hidden == false) {
    
        echo '<br/>';
            
        echo ($page != 1) ? '<a href="'.$link.'page.1">1</a>' : '[<b>1</b>]';
        for ($i =- 3; $i <= 3; $i++) {
        
            if ($page + $i > 1 && $page + $i < $k_page) :
                    
                if ($i ==- 3 && $page + $i > 2) {
                    echo ' <a>..</a>'; 
                }
                    
                echo ($i != 0) ? ' <a href="'.$link.'page.'.($page + $i).'">'.($page + $i).'</a>' : ' [<b>'.($page + $i).'</b>]';
                if ($i == 3 && $page + $i < $k_page - 1) {
                    echo ' <a>..</a>';
                }
                    
            endif;
            
        }
        
}
}
define('ROOT','../');
define('GCMS',true);
require_once (ROOT.'system/power.php');
$diz -> head('Просмотр архива');
$diz -> title('Просмотр архива');
$row = $db -> query("SELECT TRIM(`path`) FROM `load_files` WHERE `id`='".$id."'")-> fetch_row();
if (file_exists($row[0])) {
    $ext = pathinfo($row[0], PATHINFO_EXTENSION);
    
    if ($ext == 'zip') {
    
        require_once(ROOT.'system/lib/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') {
                
                echo '<div class="fon">
                <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)));
                }
                
echo '<div class="levo"><a href="load/'.$id.'.archive" class="levo_tuch">'.$diz -> img('back.png').' Назад</a></div>';
            } 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;
            
            
            echo '<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;
            }
            
            echo '<div class="fon">';
            
            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 {
                echo $zdir.'/'.$fname;
                }
                
                
                echo'<br/>';
            }
            
            echo '</div>';
                        if ($all > 1) {
                navigation('/obmen/'.$id.'.archive/', $all, $page);
            }
            
    echo '</div>';
        }
        
    } else {
        exit;
    }
} else echo'Файл не найден!';
echo '<div class="levo"><a href="'.$file.'" class="levo_tuch">'.$diz -> img('back.png').' Назад</a></div>';
echo '<div class="levo"><a href="/index.php" class="levo_tuch">'.$diz -> img('home.png').' На главную</a></div>';
#####Копирайт#######
$diz -> out($msg);
?>