Вход Регистрация
Файл: 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 10995116277761);
            
$unit 'Тб';
        }
        elseif (
$num >= 1000000000) {
            
$num round($num 10737418241);
            
$unit 'Гб';
        }
        elseif (
$num >= 1000000) {
            
$num round($num 10485761);
            
$unit 'Мб';
        }
        elseif (
$num >= 1000) {
            
$num round($num 10241);
            
$unit 'Кб';
        }
        else {
            
$unit 'б';
            return 
number_format($num).' '.$unit;
        }

        return 
number_format($num1).' '.$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 floor(($width $new_width) / 2);
        
$new_top = ! $use_horizontal floor(($height $new_height) / 2);

        
$pic_to_src $picfunc($path_to_file);

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

        
// Заполнение цветом
        
$white imagecolorallocate($pic_to_save000);
        
imagefill($pic_to_save00$white);

        
// Нанесение старого изображения на новое
        
imagecopyresampled($pic_to_save$pic_to_src$new_left$new_top00$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;
    }
    
}
Онлайн: 0
Реклама