Сниппеты Полезные кусочки кода
PHP
UPPERCASE и lowercase русских символов
В PHP есть две замечательные функции strtolower() и strtoupper(), которые позволяют превратить ТАКОЙ ТЕКСТ в такой и в ТАКОЙ соответственно. Однока эти функции совершенно бесполезны для симыволов в UTF-8, где для кодирования каждой буквы отводится 2 байта, вместо 1.
Для перевода русских слов и служит эта функция.
toLowerUpper()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function toLowerUpper($str, $to='upper', $capitalize=false){ $upperSymbs = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я'); $lowerSymbs = array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'); if($to=='lower'){ $newStr = str_replace($upperSymbs, $lowerSymbs, $str); if($capitalize){ $first = ''; for($i=1;$i<3;$i++) if(in_array(mb_substr($newStr,0,$i),$lowerSymbs)){ $first = mb_substr($newStr,0,$i);break; } $firstCap=toLowerUpper($first); $newStr = substr_replace($newStr,$firstCap,0,$i); } return $newStr; } else { return str_replace($lowerSymbs, $upperSymbs, $str); } } |
Примеры
1 2 3 4 5 6 | echo toLowerUpper('пишем капсом'); // ПИШЕМ КАПСОМ echo toLowerUpper('ПИШЕМ СТРОКОМ', 'lower'); // пишем строком echo toLowerUpper('ПИШЕМ СТРОКОМ С ЗАГЛАВНОЙ', 'lower', true); // Пишем строком с заглавной |

