Набор полезных функций для PHP

// Склонение числа (число, рубль, рубля, рублей)
function DeclinationOfNumber($n, $f1, $f2, $f5)
{
	$n = abs(intval($n)) % 100;
	if ($n > 10 && $n < 20)
		return $f5;
	$n = $n % 10;
	if ($n > 1 && $n < 5)
		return $f2;
	if ($n == 1)
		return $f1;
	return $f5;
}

// Генерация случайного набора символов
function StringRandom($len, $base = "abcdefghjkmnpqrstwxyz123456789")
{
	$max = strlen($base) - 1;   
	$activatecode = "";   
	mt_srand((double)microtime() * 1000000);   
	while (strlen($activatecode) < $len + 1) {
		$activatecode .= $base{mt_rand(0, $max)};
	}
	return $activatecode;
}

// Проверка E-mail на правильность заполнения
function EmailConfirm($email){
	return preg_match("/^([0-9a-zA-Z]+([\-\.\_]{0,1}[0-9a-zA-Z]+)*[\-\.\_]{0,1}@[0-9a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]+([\-\.\_]{0,1}[0-9a-zA-Z]+)*[\.][a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]{2,9})$/", $email);
}

// Проверка на существование дирикторий и создание при отсутствии
function CheckDirPath($path)
{
	$path = str_replace(array("\\", "//"), "/", $path);

	//remove file name
	if (substr($path, -1) != "/")
	{
		$p = strrpos($path, "/");
		$path = substr($path, 0, $p);
	}

	$path = rtrim($path, "/");

	if (!file_exists($path))
	{
		return mkdir($path, 0755, true);
	}
	else
	{
		return is_dir($path);
	}
}

// Проверка E-mail на правильность заполнения
function isEmail($email)
{
	return preg_match("/^([0-9a-zA-Z]+([\-\.\_]{0,1}[0-9a-zA-Z]+)*[\-\.\_]{0,1}@[0-9a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]+([\-\.\_]{0,1}[0-9a-zA-Z]+)*[\.][a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]{2,9})$/", $email);
}

// Транслит для URL или PATH
function TranslitSef($value)
{
	$converter = array(
		'а' => 'a',    'б' => 'b',    'в' => 'v',    'г' => 'g',    'д' => 'd',
		'е' => 'e',    'ё' => 'e',    'ж' => 'zh',   'з' => 'z',    'и' => 'i',
		'й' => 'y',    'к' => 'k',    'л' => 'l',    'м' => 'm',    'н' => 'n',
		'о' => 'o',    'п' => 'p',    'р' => 'r',    'с' => 's',    'т' => 't',
		'у' => 'u',    'ф' => 'f',    'х' => 'h',    'ц' => 'c',    'ч' => 'ch',
		'ш' => 'sh',   'щ' => 'sch',  'ь' => '',     'ы' => 'y',    'ъ' => '',
		'э' => 'e',    'ю' => 'yu',   'я' => 'ya',
	);

	$value = mb_strtolower($value);
	$value = strtr($value, $converter);
	$value = mb_ereg_replace('[^-0-9a-z]', '-', $value);
	$value = mb_ereg_replace('[-]+', '-', $value);
	$value = trim($value, '-');

	return $value;
}