Файл: sys/inc/utf8_convert_case.php
Строк: 28
<?php
function utf8_convert_case($s, $mode)
{
static $trans = array(
"x41" => "x61", #a
"x42" => "x62", #b
"x43" => "x63", #c
"x44" => "x64", #d
"x45" => "x65", #e
"x46" => "x66", #f
"x47" => "x67", #g
"x48" => "x68", #h
"x49" => "x69", #i
"x4a" => "x6a", #j
"x4b" => "x6b", #k
"x4c" => "x6c", #l
"x4d" => "x6d", #m
"x4e" => "x6e", #n
"x4f" => "x6f", #o
"x50" => "x70", #p
"x51" => "x71", #q
"x52" => "x72", #r
"x53" => "x73", #s
"x54" => "x74", #t
"x55" => "x75", #u
"x57" => "x77", #w
"x56" => "x76", #v
"x58" => "x78", #x
"x59" => "x79", #y
"x5a" => "x7a", #z
"xd0x81" => "xd1x91", #ё
"xd0x90" => "xd0xb0", #а
"xd0x91" => "xd0xb1", #б
"xd0x92" => "xd0xb2", #в
"xd0x93" => "xd0xb3", #г
"xd0x94" => "xd0xb4", #д
"xd0x95" => "xd0xb5", #е
"xd0x96" => "xd0xb6", #ж
"xd0x97" => "xd0xb7", #з
"xd0x98" => "xd0xb8", #и
"xd0x99" => "xd0xb9", #й
"xd0x9a" => "xd0xba", #к
"xd0x9b" => "xd0xbb", #л
"xd0x9c" => "xd0xbc", #м
"xd0x9d" => "xd0xbd", #н
"xd0x9e" => "xd0xbe", #о
"xd0x9f" => "xd0xbf", #п
"xd0xa0" => "xd1x80", #р
"xd0xa1" => "xd1x81", #с
"xd0xa2" => "xd1x82", #т
"xd0xa3" => "xd1x83", #у
"xd0xa4" => "xd1x84", #ф
"xd0xa5" => "xd1x85", #х
"xd0xa6" => "xd1x86", #ц
"xd0xa7" => "xd1x87", #ч
"xd0xa8" => "xd1x88", #ш
"xd0xa9" => "xd1x89", #щ
"xd0xaa" => "xd1x8a", #ъ
"xd0xab" => "xd1x8b", #ы
"xd0xac" => "xd1x8c", #ь
"xd0xad" => "xd1x8d", #э
"xd0xae" => "xd1x8e", #ю
"xd0xaf" => "xd1x8f", #я
"xd2x96" => "xd2x97",
"xd2xa2" => "xd2xa3",
"xd2xae" => "xd2xaf",
"xd2xba" => "xd2xbb",
"xd3x98" => "xd3x99",
"xd3xa8" => "xd3xa9",
"xd2x90" => "xd2x91",
"xd0x84" => "xd1x94",
"xd0x86" => "xd1x96",
"xd0x87" => "xd1x97",
"xd0x8e" => "xd1x9e",
"xc3x84" => "xc3xa4",
"xc3x87" => "xc3xa7",
"xc3x91" => "xc3xb1",
"xc3x96" => "xc3xb6",
"xc3x9c" => "xc3xbc",
"xc4x9e" => "xc4x9f",
"xc4xb0" => "xc4xb1",
"xc5x9e" => "xc5x9f",
"xc4x8c" => "xc4x8d",
"xc4x86" => "xc4x87",
"xc4x90" => "xc4x91",
"xc5xa0" => "xc5xa1",
"xc5xbd" => "xc5xbe",
"xc3x80" => "xc3xa0",
"xc3x82" => "xc3xa2",
"xc3x86" => "xc3xa6",
"xc3x88" => "xc3xa8",
"xc3x89" => "xc3xa9",
"xc3x8a" => "xc3xaa",
"xc3x8b" => "xc3xab",
"xc3x8e" => "xc3xae",
"xc3x8f" => "xc3xaf",
"xc3x94" => "xc3xb4",
"xc5x92" => "xc5x93",
"xc3x99" => "xc3xb9",
"xc3x9b" => "xc3xbb",
"xc5xb8" => "xc3xbf",
);
if ($mode == CASE_UPPER)
{
if (function_exists('mb_strtoupper')) return mb_strtoupper($s, 'utf-8');
if (preg_match('/^[x00-x7e]*$/', $s)) return strtoupper($s);
strtr($s, array_flip($trans));
}
elseif ($mode == CASE_LOWER)
{
if (function_exists('mb_strtolower')) return mb_strtolower($s, 'utf-8');
if (preg_match('/^[x00-x7e]*$/', $s)) return strtolower($s);
strtr($s, $trans);
}
else
{
trigger_error('Parameter 2 should be a constant of CASE_LOWER or CASE_UPPER!', E_USER_WARNING);
return $s;
}
return $s;
}
function utf8_lowercase($s)
{
return utf8_convert_case($s, CASE_LOWER);
}
function utf8_uppercase($s)
{
return utf8_convert_case($s, CASE_UPPER);
}
?>