Файл: profiwm.pp.ua/system/function.php
Строк: 950
<?php
//-------------функция микросекунд-------------//
function getmicrotime()
{
    list($usec, $sec) = explode(' ', microtime());
    return ((float)$usec + (float)$sec);
}
//-------------функция определения правильного размера-------------//
function get_size($size)
{
    if ($size < 1024) $size = $size . ' Bt';
    if ($size > 1024 and $size < 1048576) $size = round($size / 1024, 1) . ' Kb';
    if ($size >= 1048576) $size = round(($size / 1024) / 1024, 1) . ' Mb';
    return $size;
}
function GetSize($size)
{
    if ($size < 1024) $size = $size;
    if ($size > 1024 and $size < 1048576) $size = round($size / 1024, 1);
    if ($size >= 1048576) $size = round(($size / 1024) / 1024, 1);
    return $size;
}
//-------------функция последней деректории-------------//
function getWithOutPath($filename)
{
    return end(explode('/', $filename));
}
//-------------функция проверки пхп синтаксиса-------------//
function check_syntax($code)
{
    return @eval('if (0) {'.$code.'}; return true;');
}
// ------------- Функция вывода пользовательских тегов --------------//
function quickcode()
{
    echo $block . '
          <a href="#form" onclick="javascript:tag('[url=]', '[/url]');">[url]</a>
          <a href="#form" onclick="javascript:tag('[b]', '[/b]');">[b]</a>
          <a href="#form" onclick="javascript:tag('[big]', '[/big]');">[big]</a>
          <a href="#form" onclick="javascript:tag('[small]', '[/small]');">[small]</a>
          <a href="#form" onclick="javascript:tag('[i]', '[/i]');">[i]</a>
          <a href="#form" onclick="javascript:tag('[u]', '[/u]');">[u]</a>
          <a href="#form" onclick="javascript:tag('[q]', '[/q]');">[q]</a>
          <a href="#form" onclick="javascript:tag('[del]', '[/del]');">[del]</a>
          <a href="#form" onclick="javascript:tag('[color=#цвет]', '[/color]');">[color]</a>
          <a href="#form" onclick="javascript:tag('[code]', '[/code]');">[code]</a>';
} 
// -------------- Вспомогательная функция быстрой вставки  -------------//
function quickpaste($form)
{
echo '<script language="JavaScript" type="text/javascript">
function tag(text1, text2) { 
if ((document.selection)) { 
document.form.' . $form . '.focus(); 
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2; 
} else if(document.forms['form'].elements['' . $form . ''].selectionStart!=undefined) { 
var element = document.forms['form'].elements['' . $form . '']; 
var str = element.value; 
var start = element.selectionStart; 
var length = element.selectionEnd - element.selectionStart; 
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length); 
} else document.form.' . $form . '.value += text1+text2; 
}    
</script>';
} 
// -------------- Функция форматирования времени  -------------//
function itime($time, $zm)
{
    $time = $time + $zm * 3600;
    $time__ = date('j n Y', $time);
    if ($time__ == date('j n Y', time() + $zm * 3600))
        return 'Сегодня в ' . date('H:i', $time);
    elseif ($time__ == date('j n Y', time() - 3600 * (24 - $zm)))
        return 'Вчера в ' . date('H:i', $time);
    else
        return strtr(date('j M Y в H:i', $time), array('Jan' => 'Янв', 'Feb' => 'Фев', 'Mar' => 'Мар', 'Apr' => 'Апр', 'May' => 'Мая', 'Jun' => 'Июн', 'Jul' => 'Июл', 'Aug' => 'Авг', 'Sep' => 'Сен', 'Oct' => 'Окт', 'Nov' => 'Ноя', 'Dec' => 'Дек'));
}
// -------------- Функция статусов  -------------//
function status($var)
{
    $ChEcKeD = forumPost($var);
    if ($ChEcKeD == 0 || $ChEcKeD <= 100)
    {
        $status = '<span style="color:#0000FF;">Прохожий</span>';
        $stars = '<img src="/ico/z1.png" alt="*"/>';
    }
    elseif ($ChEcKeD >= 101 || $ChEcKeD <= 250)
    {
        $status = '<span style="color:#0000FF;">Новичок</span>';
    }
    elseif ($ChEcKeD >= 251 || $ChEcKeD <= 500)
    {
        $status = '<span style="color:#0000FF;">Постоялец</span>';
        $stars = '<img src="/ico/z2.png" alt="*"/>';
    }
    elseif ($ChEcKeD >= 501 || $ChEcKeD <= 800)
    {
        $status = '<span style="color:#0000FF;">Местный</span>';
    }
    elseif ($ChEcKeD >= 1001 || $ChEcKeD <= 1100)
    {
        $status = '<span style="color:#0000FF;">Старожил</span>';
        $stars = '<img src="/ico/z3.png" alt="*"/>';
    }
    elseif ($ChEcKeD >= 1101 || $ChEcKeD <= 1200)
    {
        $status = '<span style="color:#0000FF;">Мастер</span>';
    }
    elseif ($ChEcKeD >= 1201 || $ChEcKeD <= 1400)
    {
        $status = '<span style="color:#0000FF;">Эксперт</span>';
        $stars = '<img src="/ico/z4.png" alt="*"/>';
    }
    elseif ($ChEcKeD >= 1401 || $ChEcKeD <= 1700)
    {
        $status = '<span style="color:#0000FF;">Авторитет</span>';
    }
    elseif ($ChEcKeD >= 1701 || $ChEcKeD <= 2000)
    {
        $status = '<span style="color:#0000FF;">Ветеран</span>';
    }
    elseif ($ChEcKeD >= 2001 || $ChEcKeD <= 2500)
    {
        $status = '<span style="color:#0000FF;">Корифей</span>';
    }
    elseif ($ChEcKeD >= 2501)
    {
        $status = '<span style="color:#0000FF;">Демиург</span>';
        $stars = '<img src="/ico/z5.png" alt="*"/>';
    }
    else
    {
        $status = NULL;
        $stars = NULL;
    }
    return $status . (isset($stars) ? '<br/>' : '') . $stars . '<br/>';
}
//-------------функция удаления деректории со вложенными файлами-------------//
function removeDir($dir)
{
    if ($objs = glob($dir . '/*'))
    {
        foreach($objs as $obj)
        {
            unlink($obj);
        }
    }
    rmdir($dir);
}
//-------------функция пройденых месяцев-------------//
function getDay($getDay, $getMonth, $getYear)
{
    $time = time() - mktime(0, 0, 0, $getMonth, $getDay, $getYear);
    $time = floor($time / '2629743.8300');
    return $time;
}
//-------------функция перевода секунд в дни-------------//
function makestime($string)
{
    $day = floor($string / 86400);
    $hours = floor(($string / 3600) - $day * 24);
    $min = floor(($string - $hours * 3600 - $day * 86400) / 60);
    $sec = $string - ($min * 60 + $hours * 3600 + $day * 86400);
    return sprintf("%01dдн %02dчас %02dмин %02dсек", $day, $hours, $min, $sec);
}
//-------------функция перевода секунд во время-------------//
function maketime($string)
{
    if ($string < 3600) {
        $string = sprintf("%02d:%02d", (int)($string / 60) % 60, $string % 60);
    } else {
        $string = sprintf("%02d:%02d:%02d", (int)($string / 3600) % 24, (int)($string / 60) % 60, $string % 60);
    } 
    return $string;
}
// --------------- Функция правильного вывода времени -------------------//
function formattime($file_time)
{
  if ($file_time >= 86400) {
    $file_time = 'суток: ' . round((($file_time / 60) / 60) / 24, 1);
  } elseif ($file_time >= 3600) {
    $file_time = 'часов:  ' . round(($file_time / 60) / 60, 1);
  } elseif ($file_time >= 60) {
    $file_time = 'минут: ' . round($file_time / 60);
  } else {
    $file_time = 'секунд:  ' . round($file_time);
  } 
  return $file_time;
} 
//-------------Функция правильного вычитания-------------//
function minus($all, $minus)
{
    $all -= $minus;
    if (0 > $all) $all = 0;
    return $all;
}
//-------------Функция склонения чисел-------------//
function plural($n, $form1, $form2, $form5)
{
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $form5;
    if ($n1 > 1 && $n1 < 5) return $form2;
    if ($n1 == 1) return $form1;
    return $form5;
}
//-------------Функция текстовой каптчи-------------//
function captcha($var)
{
$var = strtr($var, array(0 => 'ноль ',
                          1 => 'один ',
                          2 => 'два ',
                          3 => 'три ',
                          4 => 'четыре ',
                          5 => 'пять ',
                          6 => 'шесть ',
                          7 => 'семь ',
                          8 => 'восемь ',
                          9 => 'девять '));
return $var;
}
//------------------ Функция определения реального IP --------------------//
require_once 'class_ipinit.php';
$ipinit = new ipinit();
$ipl = $ipinit->ip;
$ipp = long2ip($ipl);
unset($ipinit);
//------------------ Функция определения реального браузера --------------------//
if (empty($_SESSION['user_brow'])) {
if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) {
    $agent = $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
} elseif (isset($_SERVER['HTTP_USER_AGENT'])) {
    $agent = $_SERVER['HTTP_USER_AGENT'];
} else {
    $agent = 'Not_detected';
}
    $agent = preg_replace('|http://|i','', $agent);
    $agent = strtok($agent,'( ');
    $_SESSION['user_brow'] = substr($agent, 0, 22);
}
$agent = check($_SESSION['user_brow']);
//-------------Функция времени-------------//
function vrem($time = NULL)
{
global $id, $time;
if ($time == NULL) $time = time();
if (isset($id)) $time = $time + 120 * 60 * 60;
$timep = date("j M Y в H:i", $time);
$time_p[0] = date("j n Y", $time);
$time_p[1] = date("H:i", $time);
if ($time_p[0] == date("j n Y")) $timep = date("H:i:s", $time);
if (isset($id)) {
if ($time_p[0] == date("j n Y", time() + 120 * 60 * 60)) $timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time() - 60 * 60 * (24 - 120))) $timep = "Вчера в $time_p[1]";
}
else
{
if ($time_p[0] == date("j n Y")) $timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time() - 60 * 60 * 24)) $timep = "Вчера в $time_p[1]";}
$timep = str_replace("Jan","Янв", $timep);
$timep = str_replace("Feb","Фев", $timep);
$timep = str_replace("Mar","Марта", $timep);
$timep = str_replace("May","Мая", $timep);
$timep = str_replace("Apr","Апр", $timep);
$timep = str_replace("Jun","Июня", $timep);
$timep = str_replace("Jul","Июля", $timep);
$timep = str_replace("Aug","Авг", $timep);
$timep = str_replace("Sep","Сент", $timep);
$timep = str_replace("Oct","Окт", $timep);
$timep = str_replace("Nov","Ноября", $timep);
$timep = str_replace("Dec","Дек", $timep);
return $timep;
}
//-------------Принудительно вырубаем глобальные переменные-------------//
if (ini_get('register_globals')) {
  $allowed = array('_ENV' => 1, '_GET' => 1, '_POST' => 1, '_COOKIE' => 1, '_FILES' => 1, '_SERVER' => 1, '_REQUEST' => 1, 'GLOBALS' => 1);
  foreach ($GLOBALS as $key => $value) {
    if (!isset($allowed[$key])) {
      unset($GLOBALS[$key]);
    }
  }
}
//-------------функция антимата-------------//
function mat($str)
{
    include_once 'censure.php';
    $censure = censure($str);
if ($censure)
{
    $str = preg_replace('/[(.*)]/siu', '<span style="color: #FF0000;"><b>[censored]</b></span>', $censure);
    return $str;
}
    else return $str;
}
//-------------воспомагательная функция линков-------------//
function url_replace($m)
{
    if (isset($_SESSION['us']))
    {
    if (!isset($m[3])) {
        return '<a href="/link.php?link=' . str_rot13(base64_encode($m[1])) . '">' . $m[2] . '</a>';
      } else {
        return '<a href="/link.php?link=' . str_rot13(base64_encode($m[3])) . '">' . $m[3] . '</a>';
      }
    } else {
        return 'Ссылки доступны только авторизированным!';
    }
}
//-------------функция подсветки PHP-кода-------------//
function highlight($code)
{
$code = strtr($code, array('<br />' => "rn", '<br/>' => "rn", '<' => '<', '>' => '>', '&' => '&', '$' => '$', '"' => '"', ''' => "'", '\' => '\', '`' => '`', '%' => '%', '^' => '^'));
if (!strpos($code, '<?') && mb_substr($code, 0, 2, 'UTF-8') != '<?')
{
    $code = "<?phprn" . trim($code) . "rn?>";
}
$code = highlight_string($code, true);
$code = strtr($code, array('<br />' => "rn", '<br/>' => "rn"));
$code = preg_replace('|( {2,})|', "rn1", $code);
        $codeline = explode("rn", $code);
              foreach($codeline as $line => $string)
              {
                    if ($string != '')
                    {
                         $ret .= '<li> ' . trim($string) . '</li>';
                    }
              }
$code = strtr($ret, array("rn" => '<br />', "rn" => '<br/>'));
#$code = strtr($ret, array('$' => '$', '\' => '\', '`' => '`', '%' => '%', '^' => '^'));
return '<div class="code"><ol>' . $code . '</ol></div>';
}
//-------------функция ББ-кодов-------------//
function bb_code($msg)
{
    $msg = preg_replace('#[code](.*?)[/code]#ie', "highlight('$1')", $msg);
    $msg = preg_replace('#[big](.*?)[/big]#si', '<big>1</big>', $msg);
    $msg = preg_replace('#[b](.*?)[/b]#si', '<b>1</b>', $msg);
    $msg = preg_replace('#[i](.*?)[/i]#si', '<i>1</i>', $msg);
    $msg = preg_replace('#[u](.*?)[/u]#si', '<u>1</u>', $msg);
    $msg = preg_replace('#[small](.*?)[/small]#si', '<small>1</small>', $msg);
    $msg = preg_replace('#[color=#([A-Z0-9]{6})](.*?)[/color]#si', '<span style="color:#1">2</span>', $msg);
    $msg = preg_replace('#[q](.*?)[/q]#si', '<div class="quote">1</div>', $msg);
    $msg = preg_replace('#[del](.*?)[/del]#si', '<del>1</del>', $msg);
    $msg = preg_replace_callback('~\[url=(http://.+?|https://.+?)\](.+?)\[/url\]~', 'url_replace', $msg);
    $msg = preg_replace('#(?<!])bhttp://koderam.info[^s[<]+#i', '<a href=" ">