View file forum/flowap/corer/functions.php

File size: 4.21Kb
<?php
class functions extends core {
	//функция фильтрации текста лучшая
	public static function htmlred($var) {
		return trim(htmlspecialchars($var, ENT_QUOTES, 'UTF-8'));
	}
	//функция фильтрации чисел вынес в отдельую что бы модить потом
	public static function ints($var) {
		return filter_var($var, FILTER_VALIDATE_INT);
	}
	// Отправка почты
	public static function mailto($mail, $theme, $text, $str) {
		$adt = 'From: ' . $str . PHP_EOL;
		$adt .= 'X-sender: < ' . $str . ' >' . PHP_EOL;
		$adt .= 'Content-Type: text/html; charset=utf-8' . PHP_EOL;
		return mail($mail, $theme, $text, $adt);
	}
	// Склонения
	public static function slv($str, $msg1, $msg2, $msg3, $ks = NULL) {
		$str = (int) $str;
		$str1 = abs($str) % 100;
		$str2 = $str % 10;
		if (isset($ks)): $strrr = $str; else: $strrr = NULL; endif;
		if ($str1 > 10 && $str1 < 20) return $strrr .' '. $msg3;
		if ($str2 > 1 && $str2 < 5) return $strrr .' '. $msg2;
		if ($str2 == 1) return $strrr .' '. $msg1;
		return $strrr .' '. $msg3;
	}
	// Функция ресайза изображений
	public static function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100) {
		if (!file_exists($src)) return false;
		$size = getimagesize($src);
		if ($size === false) return false;
		$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
		$icfunc = "imagecreatefrom" . $format;
		if (!function_exists($icfunc)) return false;
		$x_ratio = $width / $size[0];
		$y_ratio = $height / $size[1];
		$ratio = min($x_ratio, $y_ratio);
		$use_x_ratio = false;   //($x_ratio == $ratio);
		$new_width = !$use_x_ratio  ? $width  : floor($size[0] * $ratio);
		$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
		$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
		$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
		$isrc = $icfunc($src);
		$idest = imagecreatetruecolor($width, $height);
		imagefill($idest, 0, 0, $rgb);
		imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width+1, $new_height, $size[0], $size[1]);
		imagejpeg($idest, $dest, $quality);
		imagedestroy($isrc);
		imagedestroy($idest);
		return true;
	}
	// Транслит
	public static function transliterate($s) {
		$s = (string) $s; // преобразуем в строковое значение
		$s = strip_tags($s); // убираем HTML-теги
		$s = str_replace(["\n", "\r"], " ", $s); // убираем перевод каретки
		$s = preg_replace("/\s+/", ' ', $s); // удаляем повторяющие пробелы
		$s = trim($s); // убираем пробелы в начале и конце строки
		$s = function_exists('mb_strtolower') ? mb_strtolower($s) : strtolower($s); // переводим строку в нижний регистр (иногда надо задать локаль)
		$s = strtr($s, ['а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'zh','з'=>'z','и'=>'i','й'=>'j','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu','я'=>'ya','ъ'=>'','ь'=>'','/'=>'-']);
		$s = preg_replace("/[^0-9a-z-_ ]/i", "", $s); // очищаем строку от недопустимых символов
		$s = str_replace(" ", "-", $s); // заменяем пробелы знаком минус
		return $s; // возвращаем результат
	}
	// функция со временем
	public static function times($time) { 
		switch (date('j n Y', $time)) {
			case date('j n Y'): 
				return 'Сегодня в ' . date('H:i', $time) .''; 
			break;

			case date('j n Y', $_SERVER['REQUEST_TIME'] - 86400): 
				return 'Вчера в ' . date('H:i', $time).''; 
			break;

			default: 
				return strtr(date('j M Y', $time), ['Jan' => 'Янв', 
				'Feb' => 'Фев', 
				'Mar' => 'Марта', 
				'Apr' => 'Апр', 
				'May' => 'Мая', 
				'Jun' => 'Июня', 
				'Jul' => 'Июля', 
				'Aug' => 'Авг', 
				'Sep' => 'Сент', 
				'Oct' => 'Окт', 
				'Nov' => 'Ноября', 
				'Dec' => 'Дек']); 
			break; 
		}
	}
}
?>