chimera-mark2-core-release/core/fox/common.php

209 lines
5.6 KiB
PHP
Raw Normal View History

2022-04-26 19:48:03 +00:00
<?php
namespace fox;
/**
*
* Class fox\common
*
* @copyright MX STAR LLC 2021
* @version 4.0.0
* @author Pavel Dmitriev
* @license GPLv3
*
*/
class common
{
static function txt2html($txt)
{
// We need some HTML entities back!
$txt = str_replace('&', '&amp;', $txt);
$txt = str_replace('<', '&lt;', $txt);
$txt = str_replace('>', '&gt;', $txt);
$txt = str_replace("\n", "<br/>", $txt);
return $txt;
}
// получить значение с get или post
static function getVal($name, $regex = '', $skipQuotes = null, $allowEmptyString = true)
{
if ((! isset($_POST[$name])) && (! isset($_GET[$name]))) {
return null;
}
if ($regex != "") {
if (isset($_POST[$name])) {
$val = preg_replace('![^' . $regex . ']+!', '', $_POST[$name]);
} else {
$val = "";
}
if ($val == "") {
if (isset($_GET[$name])) {
$val = preg_replace('![^' . $regex . ']+!', '', $_GET[$name]);
}
;
}
} else {
if (! isset($skipQuotes)) {
if (isset($_POST[$name])) {
$val = preg_replace("![\'\"]+!", '\"', $_POST[$name]);
} else {
$val = "";
}
if ($val == "") {
if (isset($_GET[$name])) {
$val = preg_replace("![\'\"]+!", '\"', $_GET[$name]);
}
}
} else {
if (isset($_POST[$name])) {
$val = $_POST[$name];
} else {
$val = $_GET[$name];
}
}
}
if (! $allowEmptyString && $val == "") {
$val = null;
}
return $val;
}
static function dropcslash($val)
{
$val = preg_replace("!\\\([\'\"])+!", "$1", $val);
return $val;
}
static function validateEMail($str) {
return preg_match("/[0-9A-Za-z_.-]*@[0-9A-Za-z_.-]/", $str);
}
/**
* проверяем, что функция mb_ucfirst не объявлена
* и включено расширение mbstring (Multibyte String Functions)
*/
static function mbx_ucfirst($str, $encoding = 'UTF-8')
{
$str = mb_ereg_replace('^[\ ]+', '', $str);
$str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_substr($str, 1, mb_strlen($str), $encoding);
return $str;
}
static function getGUIDc()
{
mt_srand((double) microtime() * 10000); // optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45); // "-"
$uuid = substr($charid, 0, 8) . $hyphen . substr($charid, 8, 4) . $hyphen . substr($charid, 12, 4) . $hyphen . substr($charid, 16, 4) . $hyphen . substr($charid, 20, 12);
return $uuid;
}
static function getGUID()
{
$cUuid = getGUIDc();
$uuid = chr(123) . // "{"
$cUuid . chr(125); // "}"
return $uuid;
}
static function fullname2qname($first, $mid, $last)
{
return $last . " " . mb_substr($first, 0, 1) . ". " . mb_substr($mid, 0, 1) . ".";
}
static function text2html($src)
{
$src = preg_replace("/[\n]/", "</br>", $src);
// $src=preg_replace("/[\cr\<\>]/"," ",$src);
return $src;
}
static function genPasswd($number, $arr = null)
{
if (! isset($arr)) {
$arr = array(
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'r',
's',
't',
'u',
'v',
'x',
'y',
'z',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'0'
);
}
// Генерируем пароль
$pass = "";
for ($i = 0; $i < $number; $i ++) {
// Вычисляем случайный индекс массива
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
}
static function clearInput($val, $regex = "")
{
if (empty($regex)) {
$regex = "[0-9a-zA-Z_.@-]";
}
return preg_replace('![^' . $regex . ']+!', '', $val);
}
static function replaceMessageFromArray($text, $ref, $template='\$\{([^}]*)\}', $delimiter=".") {
$match=[];
preg_match_all('/'.$template.'/', $text, $match);
foreach ($match[1] as $idx=>$val) {
$text=str_replace($match[0][$idx], static::getArrayKeyByPath($ref,explode($delimiter,$val)), $text);
}
return $text;
}
static function getArrayKeyByPath($arr, $path) {
if (gettype($path)=="NULL") {
return "undefined";
} elseif (gettype($path)=="string") { $path=[$path]; }
while ($key = array_shift($path)) {
if (array_key_exists($key, (array)$arr)) {
$arr=((array)$arr)[$key];
} else {
return "undefined";
}
}
return $arr;
}
}
?>