View file adm_panel/loads_recount.php

File size: 4.45Kb
<?



include_once '../sys/inc/start.php';



include_once '../sys/inc/compress.php';



include_once '../sys/inc/sess.php';



include_once '../sys/inc/home.php';



include_once '../sys/inc/settings.php';



include_once '../sys/inc/db_connect.php';



include_once '../sys/inc/ipua.php';



include_once '../sys/inc/fnc.php';



include_once '../sys/inc/loads.php';



include_once '../sys/inc/adm_check.php';



include_once '../sys/inc/user.php';



user_access('adm_set_loads',null,'index.php?'.SID);



adm_check();







$set['title']='Пересчет файлов в з-ц';



include_once '../sys/inc/thead.php';



title();







if (isset($_POST['go']) && isset($_POST['path']))



{



if (function_exists('set_time_limit'))@set_time_limit(600); // Ставим ограничение на 10 минут



$deleted=0; // количество удаленных файлов







if (isset($_POST['clear']) && $_POST['clear']==1)



{



$path=urldecode($_POST['path']);



$path=str_replace(H.'sys/loads/files', null, $path);



$path=(function_exists('iconv'))?iconv('windows-1251', 'utf-8', $path):$path;



$path='/'.preg_replace('#^/+|/+$#i', null, $path).'/';



mysql_query("DELETE FROM `loads_list` WHERE `path` LIKE '".my_esc($path)."%'");



}



else



{



$q=mysql_query("SELECT * FROM `loads_list`");



while ($list=mysql_fetch_array($q))



{



$file=(function_exists('iconv'))?iconv('utf-8', 'windows-1251', $list['path'].$list['name']):$list['path'].$list['name'];



if (!file_exists(H.'sys/loads/files'.$file))



{



mysql_query("DELETE FROM `loads_list` WHERE `path` = '".my_esc($list['path'])."' AND `name` = '".my_esc($list['name'])."' LIMIT 1");



$deleted++;



}



}



}











function recount_loads($dir)



{



global $added;



$opendir=opendir($dir);



while ($readdir=readdir($opendir)) {



if (!preg_match("#^\.|\.php|\.name$|\.txt$|\.opis$|\.html?$|\.sql$|\.ini$|\.db$|\.dat$|\.jad$#i",$readdir) && !preg_match("#\.JPG$|\.PNG$|\.GIF$#",$readdir))



{



if (is_dir($dir.'/'.$readdir))



recount_loads($dir.'/'.$readdir);



elseif (is_file($dir.'/'.$readdir))



{



$path=str_replace(H.'sys/loads/files', null, $dir);



$path=(function_exists('iconv'))?iconv('windows-1251', 'utf-8', $path):$path;



$path='/'.preg_replace('#^/+|/+$#i', null, $path).'/';



$name=(function_exists('iconv'))?iconv('windows-1251', 'utf-8', $readdir):$readdir;



$size=filesize($dir.'/'.$readdir);



$file_time=filectime($dir.'/'.$readdir);







if (mysql_result(mysql_query("SELECT COUNT(*) FROM `loads_list` WHERE `name` = '".my_esc($name)."' AND `path` = '".my_esc($path)."' LIMIT 1"),0)==0)



{



mysql_query("INSERT INTO `loads_list` (`name`, `size`,  `path`, `time`) values('".my_esc($name)."', '$size', '".my_esc($path)."', '$file_time')");







$added++;



}



}



}



}



closedir($opendir);



}



$added=0; // Добавлено











recount_loads(urldecode($_POST['path']));



admin_log('Загрузки','Пересчет файлов',"Удалено $deleted / Добавлено $added записей");



msg("Удалено $deleted / Добавлено $added записей");



}



err();



aut();











echo "<form method='post' action='?gen=$passgen'>\n";



echo "Директория:<br />\n";



echo "<select class=\"submit\" name=\"path\">";



echo "<option value='..%2Fsys%2Floads%2Ffiles'>Корневая папка</option>\n";



dirrs('../sys/loads/files','../sys/loads/files');



echo "</select><br />\n";



echo "<label><input type='checkbox' name='clear' value='1' /> Зачистить перед пересчетом</label><br />\n";



echo "<input type='submit' name='go' value='Начать' />";



echo "</form>\n";







echo "* Частый пересчет большого количества файлов может сильно загрузить сервер, поэтому по возможности старайтесь указывать конкретную папку.<br />\n";







if (user_access('adm_set_loads') || user_access('adm_panel_show')){



echo "<div class='foot'>\n";



if (user_access('adm_set_loads'))



echo "&laquo;<a href='settings_loads.php'>Настройки загрузок</a><br />\n";



if (user_access('adm_panel_show'))



echo "&laquo;<a href='/adm_panel/'>В админку</a><br />\n";



echo "</div>\n";



}



include_once '../sys/inc/tfoot.php';



?>