Файл: 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=" ">