Завалялось всякого - мож кому пригодится )
Добавлено: 22 фев 2012, 02:46
Код: Выделить всё
// проверить файл на обновление и обновить с сервера если надо
function check_and_update_file($local_path,$remote_path)
{
$cur_ver=file_get_contents("$local_path.ver");
$check_ver=file_get_contents("$remote_path.ver");
if ($cur_ver!=$check_ver && $check_ver!="")
{
$rcontent=file_get_contents("$remote_path.vvv");
if ($rcontent!="")
{
file_put_contents("$local_path.php",$rcontent);
file_put_contents("$local_path.ver",$check_ver);
echo("finish update $local_path ( $cur_ver -> $check_ver )<br>");
}
}
}
// вывести лог
function log_event($event,$path="")
{
// глобальные
global $log_path,$app,$script_name;
// вывод
$out="[".date("H:i:s")."] ".$event;
// в консоль
echo $out."<br>";
// в локальный лог
if ($path!="")
file_add($path,$out."\n");
// в глобальный лог
if ($log_path!="")
file_add($log_path,$out."\n");
$app->set_title($app->get_port().": $script_name: $out");
}
// пауза перед новой попыткой восстановления сбора
function sleep_before_new_try($num_try)
{
// глобальные
global $app;
// 20 сек пауза
sleep(20);
// на 5 попытке спим 1 минуту
if ($num_try%5==0)
sleep(60);
// на 20 попытке спим 10 минут
if ($num_try%20==0)
sleep(600);
// на 100 попытке спим 60 минут
if ($num_try%100==0)
sleep(3600);
// на 200 попытке - остановить
if ($num_try==200)
$app->quit();
}
// проверка памяти и выдача предупреждения
function check_memory($show_mess)
{
// глобальные
global $debug;
// получим размер памяти
$mem_size=$debug->get_cur_mem_size();
log_event("Size of used memory : ".$mem_size);
if ($mem_size>2000000000)
{
if ($show_mess)
$debug->message_box("used memory = ".$mem_size);
return false;
}
return true;
}
// создать папку для хранения хтмл файлов
function create_folder_for_html($OutFolder)
{
global $folder;
$backup_folder=$OutFolder.date("y_m_d")."\\";
$folder->create_folder($OutFolder);
$folder->create_folder($OutFolder.date("y_m_d")."\\");
return $backup_folder;
}
// зархивируем папку раром
function rar_folder($folder_path,$folder_name)
{
// глобальное
global $app;
// проверка парметров
if ($folder_path=="" || $folder_name=="")
{
echo "empty params for raring folder";
$app->quit();
}
// чистое имя папки
$folder_name=str_replace("\\","",$folder_name);
// содержимое bat файла
$sStart="cd $folder_path\n";
$sStart=$sStart."rar.exe u -m5 -mdE -s -r -ed -df -ep1 ".$folder_name.".rar ".$folder_name."\n";
$sStart=$sStart."del ".$folder_path."rar_me.bat";
// выполним
$app->run_as_bat($sStart,$folder_path."rar_me.bat",true);
}