Просмотр файла down/zip.php

Размер файла: 5.47Kb
<?php
#-----------------------------------------------------#
# ============ЗАГРУЗ-ЦЕНТР============= #
# 	 Автор : Sea #
# E-mail : [email protected] #
# ICQ : 355152215 #
# Вы не имеете права распространять данный скрипт. #
# 		По всем вопросам пишите в ICQ. #
#-----------------------------------------------------#

// mod Gemorroj
require 'moduls/config.php';
require 'moduls/fun.php';
require 'moduls/pclzip.lib.php';
require 'moduls/header.php';

###############Если zip выключен##########
if(!$setup['zip_change']) die('Not found</body></html>');
###############Проверка переменных###############


$onpage = get2ses('onpage');
is_num($onpage,'onpage');

$prew = get2ses('prew');
$id = intval($_GET['id']);
$page = intval($_GET['page']);
$start = intval($_GET['start']);

if ($onpage < 1) {
    $onpage = $setting['onpage'];
}

$d = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if (!file_exists($d['path'])) {
    die('Такой файл не существует');
}

###############Получаем каталог#############
$filename = pathinfo($d['path']);
$ext = strtolower($filename['extension']);
if ($ext != 'zip') {
    die('Файл не является ZIP архивом');
}

$dir = $filename['dirname'] . '/';
$back = mysql_fetch_array(mysql_query("SELECT * FROM `files` WHERE `path` = '" . $dir . "'"));
###############Заголовок###################
echo '<div class="gt"><img src="dis/in.png" alt=""><strong>Просмотр архива '.basename($d['path']).'</strong></div><div class="for">';
###############Содержимое###################
if(!$_GET['action'])
{
    $zip = new PclZip($d['path']);
    if(!$list = $zip->listContent()) die('Ошибка: '.$zip->errorInfo(true));

    for($i=0, $all = sizeof($list); $i<$all; $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 / 1024, 2);

    $preview = explode('|', $savelist);
    
    $count = sizeof($preview)-1;
    echo 'Всего файлов: '.$count.'<br>Вес распакованного архива: '.$obkb.' kb</div><div class="cont">';
    if (!isset($page)) $page=1;
    $n = 0;
    $pages = ceil($count/$onpage);
    if(!$pages) $pages = 1;
    if ($page) $n = ($onpage*$page)-$onpage;
    if ($count == 0) echo 'Пока пусто :(';
    $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="'.$_SERVER['PHP_SELF'].'?action=preview&amp;id='.$id.'&amp;open='.$path.'">'.$fname.'</a>';
        if($sizefiles[$n]!='0') echo ' ['.round($sizefiles[$n]/1024,2).'kb]';
        echo'<br>';
        $n++;
    }
    //------------------------------------------------------------------------------------------
    echo '</div><div class="for">Страницы: ';
    $asd= $page - 2;
    $asd2= $page + 3;
    if($asd<$count && $asd>0 && $page>3) echo '<a href="zip.php?id='.$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="zip.php?id='.$id.'&amp;page='.$i.'">'.$i.'</a> ';
        }
    }
    if ($i <= $pages)
    {
        if($asd2<$count) echo ' ... <a href="zip.php?id='.$id.'&amp;page='.$pages.'">'.$pages.'</a>';
    }
    echo '<br>';
}
###############Просмотр файла###################
if($_GET['action']=='preview')
{
    if(strpos($_GET['open'] , '..') !== false or strpos($_GET['open'] , './') !== false) die($setup['hackmess'] . '</body></html>');
    $_GET['open'] = clean(del($_GET['open']));
    $zip = new PclZip($d['path']);
    $content = $zip->extract(PCLZIP_OPT_BY_NAME, $_GET['open'] ,PCLZIP_OPT_EXTRACT_AS_STRING);
    $content = $content[0]['content'];

    echo '<strong>Файл: '.$_GET['open'].'</strong><br>Строк: ' . sizeof(explode("\r\n", $content)) . '</div><div class="row">';
    if ($content == iconv('UTF-8', 'UTF-8', $content)) {
        echo highlight_string(trim($content), true);
    } else {
        echo highlight_string(trim(iconv('windows-1251', 'utf-8', $content)), true);
    }
    echo'</div><div class="for">';
}
echo '- <a href="view.php?id='.$id.'">Описание</a><br>
- <a href="index.php?id='.$back['id'].'">В категорию</a><br>
- <a href="index.php">Загрузки</a><br/>
- <a href="'.$setup['site_url'].'">На главную</a></div>';

include 'moduls/foot.php';

?>