Файл: _core/_class/system.php
Строк: 298
<?php
# mark core v1.0
# author Drk in
# date 24.10.19
# class system
class system {
public static function check($msg) # check data
{
if (is_array($msg)):
foreach($msg as $key => $val):
$msg[$key] = self::check($val);
endforeach;
else:
$msg = htmlspecialchars($msg);
$search = array(' ','|', ''', '$', '\', '^', '%', '`', " ", "x00", "x1A", chr(226) . chr(128) . chr(174));
$replace = array(' ','|', ''', '$', '\', '^', '%', '`', '', '', '', '');
$msg = str_replace($search, $replace, $msg);
$msg = stripslashes(trim($msg));
endif;
return $msg;
}
public static function abs($msg) # abs intval data
{
return abs( intval($msg) );
}
public static function utf_strlen($msg) # strlen data
{
return strlen( utf8_decode($msg) );
}
public static function ending($num, $a, $b, $c) # ending data
{
$q = ($num % 10 == 1 && $num % 100 != 11? 0: ($num % 10 >= 2 && $num % 10 <= 4 && ($num % 100 < 10 or $num % 100 >= 20)? 1: 2));
return ($q == 0? $a: ($q == 1? $b: ($q == 2? $c: null)));
}
public static function header($redirect,$msg = null,$err = null,$meta = null) # header redirect
{
if ($err == null && $msg != null)$_SESSION['err'] = $msg;
if ($err == 1 && $msg != null)$_SESSION['show'] = $msg;
if ($meta == null):
header("Location: $redirect");
else:
?><META HTTP-EQUIV="REFRESH" CONTENT="0;<?=$redirect?>"><?php endif;
exit();
return;
}
public static function access($access) # check user and guest
{
global $user;
if (isset($user) && $access == false):self::header('/map'); endif;
if (!isset($user) && $access == true):self::header('/login','Сталкер, для начало вам нужно авторизоватся'); endif;
}
public static function adm($access = 0) # check admin
{
global $user;
if (isset($user) && $access == 0 && $user['admin'] == 0 || !isset($user)):self::header('/map'); endif;
if (isset($user) && $access == 1 && $user['admin'] != 1 || !isset($user)):self::header('/map'); endif;
if (isset($user) && $access == 2 && $user['admin'] != 2 || !isset($user)):self::header('/map'); endif;
if (isset($user) && $access == 3 && $user['admin'] != 3 || !isset($user)):self::header('/map'); endif;
}
public static function dis($sn = null) # display error and show
{
$msg = (isset( $_SESSION['err'] ) ? $_SESSION['err']:null).(isset( $_SESSION['show'] ) ? $_SESSION['show']:null);
$text = null;
if ($sn == null && $msg != null)$text = '<div class="dialog"><h1 class="pda">КПК</h1><p>› '.$msg.'</p></div>';
if ($sn == 1)$text = '<div class="dialog"><h1 class="human">Шрам</h1><p>› '.($msg == null ? 'Так-так, кто это тут у нас пытается пройти? Назови свои имя, сталкер!':$msg).'</p></div>';
if ($sn == 2 && $msg != null)$text = '<h1 class="human">Шрам</h1><p>› '.$msg.'</p>';
if ($sn == 3)$text = '<div class="dialog"><h1 class="human">Блокпост</h1><p>› '.($msg == null ? 'Дальше проход закрыт! Введи свои данные в форму ниже, чтобы пройти блокпост и попасть в зону.':$msg).'</p></div>';
return $text;
}
public static function undis() # unset error and show
{
if (isset($_SESSION['err']))unset($_SESSION['err']);
if (isset($_SESSION['show']))unset($_SESSION['show']);
}
public static function sp() # start step
{
global $user;
if(isset($user) && $user['sp'] != 0 && $_SERVER['PHP_SELF'] != "/_modules/start/step/index.php"):
self::header('/start/step/'.$user['sp']);
endif;
if(isset($user) && $user['sp'] == 0 && $_SERVER['PHP_SELF'] == "/_modules/start/step/index.php"):
self::header('/map');
endif;
}
public static function adm_dis() # display errors adm
{
global $user; global $config;
if(isset($user) && $user['admin'] == 1):
error_reporting(E_ALL);
ini_set("display_errors", $config['error']);
endif;
}
public static function time($time = null) # time data
{
if ($time == NULL) $time = time(); $jmy = date("j M Y", $time);
$arr = ['jmy' => date("j M Y", $time), 'his' => date("H:i:s", $time)];
if ($arr['jmy'] == date("j M Y")): return 'Cегодня в '. $arr['his'];
elseif ($arr['jmy'] == date("j M Y", time()-60*60*24)): return 'Вчера в '.$arr['his']; else:
$array = [
'Jan' => 'Янв', 'Feb' => 'Фев', 'Mar' => 'Марта', 'May' => 'Мая',
'Apr' => 'Апр', 'Jun' => 'Июня', 'Jul' => 'Июля', 'Aug' => 'Авг',
'Sep' => 'Сент', 'Oct' => 'Окт', 'Nov' => 'Ноября', 'Dec' => 'Дек',
];
return str_replace(array_keys($array), array_values($array), $jmy).' в '.$arr['his']; endif;
}
public static function br($msg, $br='<br />') # br data
{
$msg = str_replace("n", $br, $msg);
$msg = str_replace("rn", $br, $msg);
return $msg;
}
public static function bb($msg) # bb code data
{
$msg = preg_replace('~[sys=([^ rnt`'"]+)](.*?)[/sys]~iu', '<a href="1"><b>2</b></a>', $msg);
return $msg;
}
public static function emojiArray() # emoji array data
{
$array = [
':)' => '<img src="'.ico.'emoji/1.png">',
':-D' => '<img src="'.ico.'emoji/2.png">',
';-)' => '<img src="'.ico.'emoji/3.png">',
'xD' => '<img src="'.ico.'emoji/4.png">',
';-P' => '<img src="'.ico.'emoji/5.png">',
'8-)' => '<img src="'.ico.'emoji/6.png">',
':]' => '<img src="'.ico.'emoji/7.png">',
'3(' => '<img src="'.ico.'emoji/8.png">',
':_-(' => '<img src="'.ico.'emoji/9.png">',
':_(' => '<img src="'.ico.'emoji/10.png">',
':_(_' => '<img src="'.ico.'emoji/11.png">',
'8_' => '<img src="'.ico.'emoji/12.png">',
'3_' => '<img src="'.ico.'emoji/13.png">',
'(XX)' => '<img src="'.ico.'emoji/14.png">',
'_O)' => '<img src="'.ico.'emoji/15.png">',
':FU:' => '<img src="'.ico.'emoji/16.png">',
'_((' => '<img src="'.ico.'emoji/17.png">',
':zz:' => '<img src="'.ico.'emoji/18.png">',
':*' => '<img src="'.ico.'emoji/19.png">',
':)_)' => '<img src="'.ico.'emoji/20.png">',
':(x)' => '<img src="'.ico.'emoji/21.png">',
':pf' => '<img src="'.ico.'emoji/22.png">',
'O__O' => '<img src="'.ico.'emoji/23.png">',
'}:}' => '<img src="'.ico.'emoji/24.png">',
':like:' => '<img src="'.ico.'emoji/25.png">',
':dislike:' => '<img src="'.ico.'emoji/26.png">',
':up:' => '<img src="'.ico.'emoji/27.png">',
':v:' => '<img src="'.ico.'emoji/28.png">',
':ok:' => '<img src="'.ico.'emoji/29.png">',
':beer:' => '<img src="'.ico.'emoji/30.png">',
':banan:' => '<img src="'.ico.'emoji/31.png">',
':rose:' => '<img src="'.ico.'emoji/32.png">',
':pitushok:'=> '<img src="'.ico.'emoji/33.png">',
':sos:' => '<img src="'.ico.'emoji/34.png">',
':cel:' => '<img src="'.ico.'emoji/35.png">',
':crown:' => '<img src="'.ico.'emoji/36.png">',
':baby:' => '<img src="'.ico.'emoji/37.png">',
':boom:' => '<img src="'.ico.'emoji/38.png">',
':gun:' => '<img src="'.ico.'emoji/39.png">',
':love:' => '<img src="'.ico.'emoji/40.png">',
':hurt:' => '<img src="'.ico.'emoji/41.png">',
':police:' => '<img src="'.ico.'emoji/42.png">',
':bolls:' => '<img src="'.ico.'emoji/43.png">',
':ear:' => '<img src="'.ico.'emoji/44.png">',
':fuck:' => '<img src="'.ico.'emoji/45.png">',
':smoke:' => '<img src="'.ico.'emoji/46.png">',
':donate:' => '<img src="'.ico.'emoji/47.png">',
':gold:' => '<img src="'.ico.'emoji/48.png">',
':silver:' => '<img src="'.ico.'emoji/49.png">',
':health:' => '<img src="'.ico.'emoji/50.png">',
':damage:' => '<img src="'.ico.'emoji/51.png">',
':armor:' => '<img src="'.ico.'emoji/52.png">',
':energy:' => '<img src="'.ico.'emoji/53.png">'
];
return $array;
}
public static function emoji($msg = null,$tp = null) # emoji data
{
$array = self::emojiArray();
if ($tp != null):
$array = array_unique($array, SORT_REGULAR);
foreach ($array as $key => $value):
echo '<a class="emoji" href="javascript:em('em',''.$key.'')">'.$value.'</a>';
endforeach;
else:
return strtr($msg, $array);
endif;
}
public static function text($msg) # show data emoji
{
return stripslashes(self::br(self::emoji(self::bb($msg))));
}
public static function age($day, $month, $year) # age data
{
$d = date('d'); $m = date('m'); $y = date('Y'); $a = null;
if($month > $m || $month == $m && $day > $d)$a = 1;
$age = $y - $year.($a == 1 ? -1:null);
return $age.self::ending($age,' год', ' года', ' лет');
}
public static function aut($time) # aut data
{
$timep = $time; $time = time() - $time; $his = date("H:i:s", $timep);
if ($time == 0): return 'только что в '.$his.'</small></font>';
elseif ($time < 60): return $time.self::ending($time, ' сек.', ' сек.', ' сек.').' назад в '.$his;
elseif ($time >= 60 && $time < 3600): return round( $time / 60).self::ending(round( $time / 60), ' мин.', ' мин.', ' мин.').' назад в '.$his;
elseif ($time >= 3600 && $time < 86400): return round( $time / 3600).self::ending(round( $time / 3600), ' ч.', ' ч.', ' ч.').' назад в '.$his;
elseif ($time >= 86400 && $time < 604800): return round( $time / 86400).self::ending(round( $time / 86400), ' д.', ' д.', ' д.').' назад в '.$his;
else: return self::time($timep); endif;
}
public static function size($bytes, $precision = 2) # size data
{
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes?log($bytes):0)/log(1024));
$pow = min($pow, count($units)-1);
$bytes /= pow(1024, $pow);
return round($bytes, $precision).' '.$units[$pow];
}
public static function memory() # memory data
{
$memory = function_exists('memory_get_usage') ? memory_get_usage() : 'n/a';
$memory = self::size($memory);
return $memory;
}
public static function count() # coun DB data
{
global $count_query;
if ($count_query == 0)$count_query = 0;
$count = '<font color="#4bff00">'.$count_query.'</font> '.self::ending($count_query,'запрос','запроса','запросов').'';
return $count;
}
public static function select() # select DB data
{
$select = null;
foreach(handler::$qs as $q):
$select.= '<div class="fights fights-about">'.self::check($q).'</div>';
endforeach;
return $select;
}
public static function num($msg, $len) # num data
{
$wordsafe = FALSE; $dots = true; $slen = strlen($msg);
if ($slen <= $len) return $msg;
if ($wordsafe): $end = $len;
while (($msg[--$len] != ' ') && ($len > 0)): endwhile;
if ($len == 0)$len = $end;endif;
if ((ord($msg[$len]) < 0x80) || (ord($msg[$len]) >= 0xC0))return substr($msg, 0, $len) . ($dots ? '...' : '');
while (--$len >= 0 && ord($msg[$len]) >= 0x80 && ord($msg[$len]) < 0xC0): endwhile;
return substr($msg, 0, $len) . ($dots ? '...' : '');
}
}
?>