Файл: inc/function.php
Строк: 155
<?php
/**
* @author [FaNiska]
* @copyright 2009
* Загруз центр
* Предложения, идеи, вопросы и об ошибках писать в icq 65-64-538 или на mobi-m-ru@ya.ru
*/
// Пользовательские функции
// Массивы транслитирования
function translit($in)
{
$trans1 = array("JO", "ZH", "CH", "SH", "SCH", "JE", "JY", "JA", "jo", "zh", "ch", "sh", "sch", "je", "jy", "ja", "A", "B", "V", "G", "D", "E", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "H", "C", "'", "Y", "a", "b", "v", "g", "d", "e", "z", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "'", "y");
$trans2 = array("Ё", "Ж", "Ч", "Ш", "Щ", "Э", "Ю", "Я", "ё", "ж", "ч", "ш", "щ", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ь", "Ы", "а", "б", "в", "г", "д", "е", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ь", "ы");
return str_replace($trans1, $trans2, $in);
}
function retranslit($in)
{
$trans1 = array("'", '`', ',', ' ', "Ё", "Ж", "Ч", "Ш", "Щ", "Э", "Ю", "Я", "ё", "ж", "ч", "ш", "щ", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ь", "Ы", "а", "б", "в", "г", "д", "е", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ь", "ы");
$trans2 = array('_', '_', '_', '_', "JO", "ZH", "CH", "SH", "SCH", "Je", "Jy", "Ja", "jo", "zh", "ch", "sh", "sch", "je", "jy", "ja", "A", "B", "V", "G", "D", "E", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "H", "C", "", "Y", "a", "b", "v", "g", "d", "e", "z", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "", "y");
return str_replace($trans1, $trans2, $in);
}
function trans($t)
{
$str = explode('!', $t);
$a = array('_', 'YA', 'Ya', 'ya', 'yee', 'YO', 'Yo', 'yo', 'ZH', 'zh', 'Zh', 'Z', 'z', 'CH', 'ch', 'Ch', 'SH', 'sh', 'Sh', 'YE', 'ye', 'Ye', 'YU', 'yu', 'Yu', 'JA', 'ja', 'Ja', 'A', 'a', 'B', 'b', 'V', 'v', 'G', 'g', 'D', 'd', 'E', 'e', 'I', 'i', 'J', 'j', 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'R', 'r', 'S', 's', 'T', 't', 'U', 'u', 'F', 'f', 'H', 'h', 'W', 'w', 'x', 'q', 'Y', 'y', 'C', 'c', '!');
$b = array(' ', 'Я', 'Я', 'я', 'ые', 'Ё', 'Ё', 'ё', 'Ж', 'ж', 'Ж', 'З', 'з', 'Ч', 'ч', 'Ch', 'Ш', 'ш', 'Ш', 'Э', 'э', 'Э', 'Ю', 'ю', 'Ю', 'Я', 'я', 'Я', 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Щ', 'щ', 'ъ', 'ь', 'Ы', 'ы', 'Ц', 'ц', '');
return $str[0] . str_replace($a, $b, $str[1]);
}
function trans2($t)
{
return str_replace('_', ' ', $t);
}
// Функция экранирования переменных
function quote_smart($value)
{
// если magic_quotes_gpc включена - используем stripslashes
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Если переменная - число, то экранировать её не нужно
// если нет - то окружем её кавычками, и экранируем
if (!is_numeric($value))
{
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
// Чистим текс от лишних символов
function clean($text)
{
return mysql_escape_string(addslashes(trim(htmlspecialchars(stripslashes($text)))));
}
function del($text)
{
$text = str_replace('&', '', $text);
$text = str_replace('$', '', $text);
$text = str_replace('>', '', $text);
$text = str_replace('<', '', $text);
$text = str_replace('~', '', $text);
$text = str_replace('`', '', $text);
$text = str_replace('#', '', $text);
$text = str_replace('*', '', $text);
return $text;
}
function br($msg, $br = '<br />')
{
$msg = eregi_replace("((<br( ?/?)>)|n|r)+", $br, $msg);
return $msg;
}
// Выдает текущую страницу
function page($k_page = 1)
{
$page = 1;
if (isset($_GET['page']))
{
if ($_GET['page'] == 'end')
$page = valid_int($k_page);
elseif (is_numeric($_GET['page']))
$page = valid_int($_GET['page']);
}
if ($page < 1)
$page = 1;
if ($page > $k_page)
$page = $k_page;
return $page;
}
// Считаем кол-во страниц
function k_page($k_post = 0, $k_p_str = 10)
{
if ($k_post != 0)
{
$v_pages = ceil($k_post / $k_p_str);
return $v_pages;
} else
return 1;
}
// Выводим номера страниц
function str($link = '?', $k_page = 1, $page = 1)
{
$str = '';
if ($page < 1)
$page = 1;
$str = $str . "<div class="str">n";
if ($page != 1)
$str = $str . "<a href="" . $link . "page=1" title='Первая страница'><<</a> ";
if ($page > 1)
$str = $str . "<a href="" . $link . "page=" . ($page - 1) . "" title='Предыдущая страница (№" . ($page - 1) . ")'><</a> ";
$str = $str . " ";
if ($page < $k_page)
$str = $str . " <a href="" . $link . "page=" . ($page + 1) . "" title='Следующая страница (№" . ($page + 1) . ")'>></a>";
if ($page != $k_page)
$str = $str . " <a href="" . $link . "page=end" title='Последняя страница'>>></a>";
$str = $str . "<br />n";
if ($page != 1)
$str = $str . "<a href="" . $link . "page=1" title='Страница №1'>1</a>";
else
$str = $str . "<b>1</b>";
for ($ot = -3; $ot <= 3; $ot++)
{
if ($page + $ot > 1 && $page + $ot < $k_page)
{
if ($ot == -3 && $page + $ot > 2)
$str = $str . " ..";
if ($ot != 0)
$str = $str . " <a href="" . $link . "page=" . ($page + $ot) . "" title='Страница №" . ($page + $ot) . "'>" . ($page + $ot) . "</a>";
else
$str = $str . " <b>" . ($page + $ot) . "</b>";
if ($ot == 3 && $page + $ot < $k_page - 1)
$str = $str . " ..";
}
}
if ($page != $k_page)
$str = $str . " <a href="" . $link . "page=end" title='Страница №$k_page'>$k_page</a>";
elseif ($k_page > 1)
$str = $str . " <b>$k_page</b>";
$str = $str . "</div>n";
return $str;
}
// Функция "красивого" размера файла
function size_file($filesize = 0)
{
$filesize_ed = 'B';
if ($filesize >= 1024)
{
$filesize = round($filesize / 1024, 2);
$filesize_ed = 'KB';
}
if ($filesize >= 1024)
{
$filesize = round($filesize / 1024, 2);
$filesize_ed = 'MB';
}
return $filesize . $filesize_ed;
}
// Функция "красивого" размера для псевдо файла
function size_file2($filesize = 0)
{
$filesize_ed = 'B';
if ($filesize >= 1000)
{
$filesize = round($filesize / 1000, 2);
$filesize_ed = 'KB';
}
if ($filesize >= 1000)
{
$filesize = round($filesize / 1000, 2);
$filesize_ed = 'MB';
}
return $filesize . $filesize_ed;
}
function vremja($time = null)
{
global $user;
if ($time == null)
$time = time();
$timep = "" . date("j M Y в H:i", $time) . "";
$time_p[0] = date("j n Y", $time);
$time_p[1] = date("H:i", $time);
if ($time_p[0] == date("j n Y"))
$timep = date("H:i:s", $time);
if (isset($user))
{
if ($time_p[0] == date("j n Y", time()))
$timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time() - 60 * 60 * 24))
$timep = "Вчера в $time_p[1]";
} else
{
if ($time_p[0] == date("j n Y"))
$timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time() - 60 * 60 * 24))
$timep = "Вчера в $time_p[1]";
}
$timep = str_replace("Jan", "Янв", $timep);
$timep = str_replace("Feb", "Фев", $timep);
$timep = str_replace("Mar", "Марта", $timep);
$timep = str_replace("May", "Мая", $timep);
$timep = str_replace("Apr", "Апр", $timep);
$timep = str_replace("Jun", "Июня", $timep);
$timep = str_replace("Jul", "Июля", $timep);
$timep = str_replace("Aug", "Авг", $timep);
$timep = str_replace("Sep", "Сент", $timep);
$timep = str_replace("Oct", "Окт", $timep);
$timep = str_replace("Nov", "Ноября", $timep);
$timep = str_replace("Dec", "Дек", $timep);
return $timep;
}
function checked($value, $real)
{
if ($value != $real)
{
return;
} else
{
return 'checked="checked"';
}
}
function selected($value, $real)
{
if ($value != $real)
{
return;
} else
{
return 'selected="selected"';
}
}
function esc($text, $br = null) // Вырезает все нечитаемые символы
{
//$text=str_replace("'", """, $text);
if ($br != null)
for ($i = 0; $i <= 31; $i++)
$text = str_replace(chr($i), null, $text);
else
{
for ($i = 0; $i < 10; $i++)
$text = str_replace(chr($i), null, $text);
for ($i = 11; $i < 20; $i++)
$text = str_replace(chr($i), null, $text);
for ($i = 21; $i <= 31; $i++)
$text = str_replace(chr($i), null, $text);
}
return $text;
}
// Функция для фильтровки цифвр. Фильтрует цифры так чтобы возвращались только 0 или положительные цифры
function valid_int($value)
{
$int = intval($value);
if ($int <= 0)
{
return 0;
} else
{
return $int;
}
}
// Функция правильного расширения. Выгрузка и импорт нежелательных расширений файлов исключен! Массив допустимых расширений редактируйте в файле inc/set.php
function valid_ext($filename)
{
global $arr_ext;
foreach ($arr_ext as $ext)
{
if (eregi(".$ext$", $filename))
{
return $ext;
}
}
}
function txt_out_dc($str, $br = true, $html = true, $smiles = true, $links = true, $bbcode = true)
{
if ($html == true)
$str = htmlentities($str, ENT_QUOTES, 'UTF-8'); // преобразуем все к нормальному перевариванию браузером
if ($br == true)
{
$str = br($str); // переносы строк
$str = esc($str); // вырезаем все нечитаемые символы, которые могут нам подпортить разметку :)
} else
{
//$str=br($str, ' '); // пробелы вместо переносов
$str = esc($str); // вырезаем все нечитаемые символы, которые могут нам подпортить разметку :)
}
return $str; // возвращаем обработанную строку
}
// накладываем копирайт на изображения, если он есть.
// размер копирайта динамически изменяется в зависимости от изображения
function img_copyright($img)
{
global $set, $setup;
/// Сначала генерируем и сохраняем файл маркировки
$imwidth = 100;
$imheight = 20;
$im = ImageCreate($imwidth, $imheight);
$background_color = ImageColorAllocate($im, 255, 255, 255);
$text_color = ImageColorAllocate($im, 0, 0, 160);
$border_color = ImageColorAllocate($im, 154, 154, 154);
/*
// Генерируем помехи в виде линий
$g1 = imagecolorallocate($im, 152, 152, 152); // Задаем цвет линий
for ($i = 0; $i <= 100; $i += 6)
imageline($im, $i, 0, $i, 25, $g1); // Горизонтальные линии
for ($i = 0; $i <= 25; $i += 5)
imageline($im, 0, $i, 100, $i, $g1); // Вертикальные линии
*/
// Генерируем надпись
$x = ($imwidth - strlen($code)) / ($setup['mark_size'] * 6);
$y = 2;
imagestring($im, $setup['mark_size'] * 2, $x, $y, $setup['mark_text'], $text_color);
ImagePNG($im, 'inc/copy.png');
imagedestroy($im);
if ($copy = @imagecreatefromstring(file_get_contents('inc/copy.png')))
{
$img_x = imagesx($img);
$img_y = imagesy($img);
$copy_x = imagesx($copy);
$copy_y = imagesy($copy);
$w = intval(min($img_x / 2, $copy_x, 128));
$h = intval(min($img_y / 2, $copy_y, 64));
$x_ratio = $w / $copy_x;
$y_ratio = $h / $copy_y;
if (($copy_x <= $w) && ($img_y <= $h))
{
$dstW = $copy_x;
$dstH = $copy_y;
} elseif (($x_ratio * $copy_y) < $h)
{
$dstH = ceil($x_ratio * $copy_y);
$dstW = $w;
} else
{
$dstW = ceil($y_ratio * $copy_x);
$dstH = $h;
}
imagecopyresampled($img, $copy, $img_x - $dstW, $img_y - $dstH, 0, 0, $dstW, $dstH, $copy_x, $copy_y);
}
return $img;
}
?>