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

/**
 * @author [FaNiska]
 * @copyright 2009
 * Загруз центр
 * Предложения, идеи, вопросы и об ошибках писать в icq 65-64-538 или на mobi-m-ru@ya.ru
 */

if (function_exists('set_time_limit'))
{
    
set_time_limit(99999);

}

ignore_user_abort(1);
include 
'inc/db_connect.php';
include 
'inc/function.php';
include 
'inc/set.php';
include 
'inc/adm_head.php';
include 
'inc/adm.php';
if (isset(
$_POST['start']) || isset($_GET['start']))
{
    
/// сканируемая папка
    
if (isset($_POST['p']))
    {
        
$scan_p = $_POST['p'];
    } else
    {
        
$scan_p = 'files';
    }

    
/// Уровень сканирования
    
if (isset($_POST['level']) && is_numeric($_POST['level']))
    {
        
$scan_l = valid_int($_POST['level']);
    } elseif (isset(
$_POST['l']))
    {
        
$scan_l = valid_int($_POST['l']);
    } else
    {
        
$scan_l = 1;
    }
    
/// Тип сканирования
    
if (isset($_POST['t']) && intval($_POST['t']) == 1)
    {
        
$scan_t = 1; // только папки
    
} else
    {
        
$scan_t = 2; // и папки, и файлы
    
}

    if (
$scan_p == 'files' && $scan_l == 1)
    {
        
$reses = mysql_query('SELECT `id`,`s_name` FROM `category` WHERE `s_name`!="vlink" && `s_name`!="vrazdel" && `s_name`!="link"');
        while (
$arr = mysql_fetch_array($reses))
        {
            
$array_cat[$arr['id']] = "$arr[s_name]";
        }
    } else
    {
        
$table = str_replace('files/', '', $scan_p);
        
$table = strtok($table, '/');
        
$table = clean($table);
        if (empty(
$table) or $table == 'files')
        {
            exit(
'Произошла ошибка при сканировании');
        }
    }
    
$count_f = 0;
    
$count_p = 0;
    
$count_r = 0;
    require_once 
'inc/scaner.php';
    
$scan_arr = scaner($scan_p, $scan_l, $scan_t);

    foreach (
$scan_arr as $value)
    {
        if (
$scan_p == 'files' && $scan_l == 1)
        {
            if (!
in_array("$value", $array_cat))
            {
                
$pathinfo = pathinfo($value);
                
$name = str_replace('.' . $pathinfo['extension'], '', basename($value));
                
$folder = dirname($value) . '/';
                if (
is_dir($value))
                {
                    include (
'inc/great_cat.php'); /// Автоматически создаем новую таблицу для категории
                
}
                
$count_r++;
            }
        } else
        {
            
$pathinfo = pathinfo($value);
            
$name = str_replace('.' . $pathinfo['extension'], '', basename($value));
            
$ras = $pathinfo['extension'];
            
$folder = dirname($value);
            
$size = filesize($value);
            
$strpos = strpos($name, '!');
            if (
$strpos !== false && $strpos == 0)
            {
                
$name = preg_replace('/!/', '', $name, 1);
                
$name = translit($name);
            } else
            {
                
$name = retranslit($name);
            }

            if (
is_dir($value))
            {
                if (
mysql_query("INSERT INTO `$table` (`type`, `r_name`, `s_name`, `folder`, `up_time`) VALUES ('1', " . quote_smart($name) . ", '$value', '$folder', '$time')"))
                {
                    
$count_p++;
                }
            } elseif (
in_array($ras, $arr_ext))
            {
                if (
mysql_query("INSERT INTO `$table` (`type`, `r_name`, `s_name`, `f_ras`, `folder`, `size`, `up_time`) VALUES ('2', " . quote_smart($name) . ", '$value', '$ras', '$folder', '$size', '$time')"))
                {
                    
$count_f++;
                }


            }

        }
    }

    if (
$scan_l == 1 && $scan_p == 'files')
    {
        echo 
"Сканирование корневой папки завершено. Создано разделов и таблиц - $count_r <hr />";
    } else
    {
        echo 
'Обновление раздела <b>' . $table . '</b> завершено.<br />
Добавлено папок - ' 
. $count_p . '<br />
Добавлено файлов -' 
. $count_f . '<br />
<b>Не забудьте произвести ПРИСВОЕНИЕ ID</b><hr />'
;
    }

} elseif (isset(
$_POST['go']) || isset($_POST['scan']) || isset($_POST['back']))
{
    
$scan_t = 2; // и папки, и файлы
    
if (isset($_POST['p']))
    {
        
$scan_p = $_POST['p'];
        
$back = eregi_replace('/[^/]*$', null, $scan_p); // папка верх
        
$back = eregi_replace('/[^/]*$', null, $back); // папка верх
        
if (isset($_POST['back']))
        {

            
$scan_p = $back;
        }

        
$table = str_replace('files/', '', $scan_p);
        
$table = strtok($table, '/');
        
$table = clean($table);

    }

    if (
$scan_p == 'files' || $table == 'files')
    {
        exit(
'Ошибка при сканировании!');
    }
    if (isset(
$_POST['go']) || isset($_POST['back']))
    {
        
$scan_l = 1;
    } elseif (isset(
$_POST['scan']))
    {
        
$scan_l = 1000000;
    }
    
$count_f = $count_p = $count_r = 0;
    require_once 
'inc/scaner.php';
    
$scan_arr = scaner($scan_p, $scan_l, $scan_t);
    foreach (
$scan_arr as $value)
    {
        
$pathinfo = pathinfo($value);
        
$name = str_replace('.' . $pathinfo['extension'], '', basename($value));
        
$ras = $pathinfo['extension'];
        
$folder = dirname($value);
        
$size = filesize($value);
        
$strpos = strpos($name, '!');
        if (
$strpos !== false && $strpos == 0)
        {
            
$name = preg_replace('/!/', '', $name, 1);
            
$name = translit($name);
        } else
        {
            
$name = retranslit($name);
        }

        if (
is_dir($value))
        {
            if (
mysql_query("INSERT INTO `$table` (`type`, `r_name`, `s_name`, `folder`, `up_time`) VALUES ('1', " . quote_smart($name) . ", '$value', '$folder', '$time')"))
            {
                
$count_p++;
            }
        } elseif (
in_array($ras, $arr_ext))
        {
            if (
mysql_query("INSERT INTO `$table` (`type`, `r_name`, `s_name`, `f_ras`, `folder`, `size`, `up_time`) VALUES ('2', " . quote_smart($name) . ", '$value', '$ras', '$folder', '$size', '$time')"))
            {
                
$count_f++;
            }


        }


    }
    echo 
'Обновление каталога <b>' . clean($scan_p) . '</b>:<br />
Добавлено папок - ' 
. $count_p . '<br />
Добавлено файлов -' 
. $count_f . '<br />
<b>Не забудьте произвести ПРИСВОЕНИЕ ID</b><hr />'
;

}

echo 
'<div>Сканирование выполнять строго поэтапно! После сканирования<br />
<b>Не забудьте произвести ПРИСВОЕНИЕ ID</b><br />
    <b>[1]</b> Для начала получите список корневых папок ЗЦ. Для этого нажмите<br />
    <a href="?start&amp;l=1&amp;t=1&amp;p=files">Создание разделов ЗЦ</a><hr />'
;
echo 
'<b>[2]</b> Если список разделов создан, то выполняем второй этап.<br />';
echo 
'<form  method="post" action="">
    <b>[*] Выберите раздел</b><br />
<select name="p" >'
;

$query = mysql_query('SELECT `id`, `s_name` FROM `category` WHERE `s_name`!="vlink" && `s_name`!="vrazdel" && `s_name`!="link"');


while (
$papka = mysql_fetch_array($query))
{
    echo 
'<option value="' . $papka['s_name'] . '">' . $papka['s_name'] . '</option>';
}
echo 
'</select><br /><b>[*] Тип сканирования</b><br />
    <input type="radio" value="1" name="t" /> Только папки<br />
    <input type="radio" value="2" checked="checked" name="t" /> Папки и файлы<br />
    <b>[*] Уровень сканирования</b><br />
    <input type="checkbox" value="1000000" name="l" /> Просканировать <b>всё</b><br />
    или укажите уровень вложенности<br />
    <input type="text" value="" name="level" /><br />'
;
echo 
'<input name="start" type="submit" value="старт"/>
</form>
    <hr />'
;
echo 
'<b>[3]</b> Третий этап - сканируем отдельные папки. [<a href="inc/step3.txt">? - инструкция</a>]<br /><br />';
echo 
'&raquo; <a href="adm_scaner.php">В начало</a><br />';
echo 
'<form  method="post" action="">
    <b>[*] Выберите каталог</b><br />
<select name="p" >'
;
if (!isset(
$_POST['p']))
{
    
$query = mysql_query('SELECT `id`, `s_name` FROM `category` WHERE `s_name`!="vlink" && `s_name`!="vrazdel" && `s_name`!="link"');
} else
{
    
$query = mysql_query('SELECT `id`, `s_name` FROM `' . $table . '` WHERE type="1" and `folder`="' . clean($scan_p) . '"');
}
while (
$papka = mysql_fetch_array($query))
{
    echo 
'<option value="' . $papka['s_name'] . '">' . $papka['s_name'] . '</option>';
}
echo 
'</select><br />';
echo 
'<input name="scan" type="submit" value="СКАНИРОВАТЬ"/><br />';
if (
$back != 'files/' . $table)
{
    echo 
'<input name="back" type="submit" value="<<НАЗАД"/>';
}

echo 
'<input name="go" type="submit" value="ПЕРЕЙТИ>>"/>
</form>
    <hr />'
;
echo 
'</div>';
echo 
'<div><img src="ext/back.gif" alt="|_" width="16" height="16" /> <a href="adm_index.php">Админка ЗЦ</a></div>';

include 
'inc/adm_foot.php';

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