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

session_start
();
if (isset(
$_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != null)
    
$_SESSION['back'] = str_replace('&', '&amp;', ereg_replace('^http://[^/]*/', '/', $_SERVER['HTTP_REFERER']));
list(
$msec, $sec) = explode(chr(32), microtime());
$HeadTime = $sec + $msec;
include 
'inc/db_connect.php';
include 
'inc/function.php';
include 
'inc/set.php';
include 
'inc/head.php';
require 
'inc/pclzip.lib.php';


$page = valid_int($_GET['page']);
$start = valid_int($_GET['start']);
$onpage = $step;
if (isset(
$_GET['id']) && isset($_GET['c']))
{
    
$id = valid_int($_GET['id']);
    
$table = clean($_GET['c']);
} else
{
    
header("location: index.php?error=invalid_id");
    exit();
}

###############Если zip выключен##########
//if($setup['zip_change']==0) {header("location: index.php?error=invalid_id");
//  exit();}


$file_info = mysql_fetch_array(mysql_query('SELECT * FROM `' . $table . '` WHERE `id` = ' . $id . ' LIMIT 1'));
if (!
file_exists($file_info['s_name']))
{

} elseif (
$file_info['f_ras'] !== 'zip')
{
    
header("location: index.php?error=file_not_found");
    exit();
}
###############Получаем данные о файле#############
$file = pathinfo($file_info['s_name']);
$file_name = $file['basename']; // реальное имя
$file_size = size_file($file_info['size']); // красивый размер
$name = str_replace('*', '', $file_info['r_name']); // Имя файла в базе
$f_ras = $file_info['f_ras']; // расширение файла в базе
###############Заголовок###################
echo '<div><img src="ext/zip.gif" alt=""><strong>Просмотр архива ' . $file_name . '</strong></div><div class="a">';
###############Содержимое###################
if (!$_GET['action'])
{
    
$zip = new PclZip($file_info['s_name']);
    if (!
$list = $zip->listContent())
        die(
'Ошибка: ' . $zip->errorInfo(true));
    for (
$i = 0; $i < sizeof($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);
    
$obkb = round($sizelist2 / 1024, 2);
    
$preview = $savelist;

    
$preview = explode('|', $preview);

    
$count = count($preview) - 1;
    echo 
'Всего файлов: ' . $count . '<br>Вес распакованного архива: ' . $obkb . ' kb</div><div class="a">';
    if (!isset(
$page))
        
$page = 1;
    
$n = 0;
    
$pages = ceil($count / $step);
    if (!
$pages)
        
$pages = 1;
    if (
$page)
        
$n = ($step * $page) - $step;
    if (
$count == 0)
        echo 
'Пока пусто :(';
    
$sizefiles = explode('|', $sizelist);
    
$selectfile = explode('|', $savelist);
    
//------------------------------------------------------------------------------------------
    
for ($i = 1; $i <= $step; $i++)
    {
        if (empty(
$selectfile[$n]))
        {
            
$n++;
            continue;
        }
        
$path = $selectfile[$n];
        
$fname = ereg_replace(".*[\/]", '', $path);
        
$zdir = ereg_replace("[\/]?[^\/]*$", '', $path);
        echo 
$zdir . '/<a href="' . $_SERVER['PHP_SELF'] . '?action=preview&amp;c=' . $table . '&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="a">Страницы: ';
    
$asd = $page - 2;
    
$asd2 = $page + 3;
    if (
$asd < $count && $asd > 0 && $page > 3)
        echo 
'<a href="zip.php?c=' . $table . '&amp;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?c=' . $table . '&amp;id=' . $id . '&amp;page=' . $i . '">' . $i . '</a> ';
        }
    }
    if (
$i <= $pages)
    {
        if (
$asd2 < $count)
            echo 
' ... <a href="zip.php?c=' . $table . '&amp;id=' . $id . '&amp;page=' . $pages . '">' . $pages . '</a>';
    }
    echo 
'<br>';
}
###############Просмотр файла###################
if ($_GET['action'] == 'preview')
{
    if (
strpos($_GET['open'], '..') !== false or strpos($_GET['open'], './') !== false)
        die(
'Произошла ошибка');
    
$_GET['open'] = clean(del($_GET['open']));
    
$zip = new PclZip($file_info['s_name']);
    
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $_GET['open'], PCLZIP_OPT_EXTRACT_AS_STRING);
    
$content = $content[0]['content'];
    
$letters = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я');
    for (
$b = 0; $b < 66; $b++)
    {
        if (
strstr($content, $letters[$b]) !== false)
        {
            
$utf = 'ok';
        }
    }
    
$preview2 = explode("rn", $content);
    
$count = count($preview2);
    function 
highlight_code($code)
    {
        
$code = trim($code);
        return 
highlight_string($code, true);
    }
    echo 
'<strong>Файл: ' . $_GET['open'] . '</strong><br>Строк: ' . $count . '</div><div class="a">';
    if (
$utf == 'ok')
        echo 
highlight_code($content);
    else
        echo 
highlight_code(iconv('windows-1251', 'utf-8', $content));
    echo 
'</div>';
}
include 
'inc/foot.php';

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