Вход Регистрация
Файл: 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('/!/'''$name1);
                
$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 == && $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('/!/'''$name1);
            
$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
Реклама