Вход Регистрация
Файл: system/classes/Main.php
Строк: 98
<?php

/*
** Автор кода: Евгений (rnddev)
** ICQ: 448235
** Email: rnddev@mail.ru
** Skype: rnddev
** Все права принадлежат автору.
** Модефикация и продажа запрещены.
*/

defined('ACCESS') or die('Error => Access');

class 
Main {
    
    public static function 
input($value, $type, $mode = 'check'){
        
$filterinput = array(
            
"LOGIN"        =>    array("^[a-zA-Z0-9]{3,50}$","латинские буквы и цифры, не менее трех символов"),
            
"PASSWORD"    =>    array("^[a-zA-Z0-9.,!#%*()$]{6,20}$","от 6 латинских букв, цифр и знаков: .,!#%*()$"),
            
"INT"        =>    array("^-?[0-9]*$","только цифры"),
            
"FLOAT"        =>    array("^-?[0-9]*.?[0-9]*$","целаячасть.дробная"),
            
"WORD"        =>    array("^[0-9a-z_/]*$","только английские буквы и цифры"),
            
"TEXT"        =>    array("^[а-яА-Яa-zA-Z0-9s]*$","только буквы и цифры"),
        );

        if(
$mode == 'check')
        return 
preg_match('~'. $filterinput[$type][0] .'~ui', $value);
        elseif(
$mode == 'format')
        return 
$filterinput[$type][1];
    }
    
    public static function 
size($num) {
        if ( ! 
$num) $num = 0;

        if (
$num >= 1000000000000) {
            
$num = round($num / 1099511627776, 1);
            
$unit = 'Тб';
        }
        elseif (
$num >= 1000000000) {
            
$num = round($num / 1073741824, 1);
            
$unit = 'Гб';
        }
        elseif (
$num >= 1000000) {
            
$num = round($num / 1048576, 1);
            
$unit = 'Мб';
        }
        elseif (
$num >= 1000) {
            
$num = round($num / 1024, 1);
            
$unit = 'Кб';
        }
        else {
            
$unit = 'б';
            return 
number_format($num).' '.$unit;
        }

        return 
number_format($num, 1).' '.$unit;
    }
    
    public static function 
display_time($time = NULL) {
        if ( ! 
$time) $time = time();

        
// Получение даты
        
$data = date('d.m.Y', $time);

        
// Получение времени
        
$time = date('H:i', $time);

        
// Сегодня
        
if ($data == date('d.m.Y')) return 'Сегодня в '. $time;

        
// Вчера
        
if ($data == date('d.m.Y', time() - 3600 * 24)) return 'Вчера в '. $time;

        return 
$data .' в '. $time;
    }
    
    public static function 
timeleft($time) {
        
        
$h = floor($time/3600);
        
$m = floor(($time%3600)/60);
        
$s = ($time%3600)%60;
        
        if(
$h == null && $m == null) return '00:'.$s;
        elseif(
$h == null) return $m.':'.$s;
        else return 
$h.':'.$m.':'.$s;
        
    }
    
    public static function 
image_resize($path_to_file, $path_to_save, $width, $height = 0, $quality = 100) {
        
// Проверка наличия изображения на сервере
        
if ( ! file_exists($path_to_file)) return FALSE;

        
// Получение информации о изображении
        
$info = getimagesize($path_to_file);

        
// Формат изображения
        
$format = strtolower(substr($info['mime'], strpos($info['mime'], '/') + 1));

        
// Выбор функции для изображения
        
$picfunc = 'imagecreatefrom'. $format;

        
// Старая ширина изображения
        
$old_width = $info[0];

        
// Старая высота изображения
        
$old_height = $info[1];

        
// Вычисление горизонтального соотношения
        
$horizontal = $width / $old_width;

        
// Вычисление вертикального соотношения
        
$vertical = $height / $old_height;

        
// Пропорциональное вычисление параметров
        
if ($height == 0) {
            
$vertical = $horizontal;
            
$height = $vertical * $old_height;
        }
        elseif (
$width == 0) {
            
$horizontal = $vertical;
            
$width = $horizontal * $old_width;
        }

        
// Формирование размера изображения
        
$ratio = min($horizontal, $vertical);

        
// Необходимость пропорционального изменения
        
if ($horizontal == $ratio) $use_horizontal = TRUE;
        else 
$use_horizontal = FALSE;

        
$new_width = $use_horizontal ? $width : floor($old_width * $ratio);
        
$new_height = ! $use_horizontal ? $height : floor($old_height * $ratio);
        
$new_left = $use_horizontal ? 0 : floor(($width - $new_width) / 2);
        
$new_top = ! $use_horizontal ? 0 : floor(($height - $new_height) / 2);

        
$pic_to_src = $picfunc($path_to_file);

        
// Создание изображения в памяти
        
$pic_to_save = imagecreatetruecolor($width, $height);

        
// Заполнение цветом
        
$white = imagecolorallocate($pic_to_save, 0, 0, 0);
        
imagefill($pic_to_save, 0, 0, $white);

        
// Нанесение старого изображения на новое
        
imagecopyresampled($pic_to_save, $pic_to_src, $new_left, $new_top, 0, 0, $new_width, $new_height, $old_width, $old_height);

        
// Определение формата изображения на выходе
        
$ext = array_pop(explode('.', $path_to_save));

        switch(
$ext) {
            case 
'jpg':
            case 
'jpeg':
                
imagejpeg($pic_to_save, $path_to_save, $quality);
            break;

            case 
'gif':
                
imagegif($pic_to_save, $path_to_save);
            break;

            case 
'png':
                
imagepng($pic_to_save, $path_to_save);
            break;

            default:
                return 
FALSE;
              break;
        }

        
// Очистка памяти
        
imagedestroy($pic_to_src);
        
imagedestroy($pic_to_save);

        return 
TRUE;
    }
    
}
Онлайн: 2
Реклама