Функция translit() получает в качестве входного параметра строку, транслитерирует кириллические символы, заменяет символы и пробелы на знак подчеркивания "_", переводит все в нижний регистр (строчные символы) и возвращает корректную строку латиницей.
Можно использовать для генерирования человекопонятных ссылок (ЧПУ), либо преобразования названий загружаемых файлов.
<?php function translit($str) { $tr = array( "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G", "Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I", "Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N", "О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T", "У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH", "Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"", "Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j", "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y", "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", "Ё"=>"E","Є"=>"E","Ї"=>"YI","ё"=>"e","є"=>"e","ї"=>"yi", " "=> "_", "/"=> "_" ); if (preg_match('/[^A-Za-z0-9_\-]/', $str)) { $str = strtr($str,$tr); $str = preg_replace('/[^A-Za-z0-9_\-.]/', '', $str); } return $str; } ?>
Например для транслита фразы теперь можно использовать такой код:
<?php $rus="Строка для транслита"; echo translit($rus); ?>
Результат: Stroka_dlya_translita
Примечание: Если транслит используется для генерации URL адресов, то правильнее будет сменить знак подчеркивания на дефис.
А если вдруг понадобится учитывать перносы в обычном тексте, то чтобы например броузер не воспринимал все как одно длинное слово - лучше разделителем слов оставить пробел.
Скачать пример translit.zip
Рубрики
-
3D и графика ( 7 )
-
Веб разработка ( 13 )
-
Железо и периферия ( 8 )
-
Портфолио и резюме ( 3 )
-
Сервер на Debian Linux ( 20 )
-
Сисадмину на заметку ( 14 )
-
Тестовая лаборатория ( 10 )
Новые записи
25.03.23 Ошибка 0x00000709 при попытке установить сетевой USB принтер
05.10.19 Добавление сертификата в exim4
18.08.18 Утилиты диагностики системы Linux
02.10.16 Отключение systemd на Debian
Комментарии
- Всё отлично! Спасибо за гайд!
03.03.24 08:01 комментирует: Luidgi Vampa - Добрый день! Спасибо вам за ваши статьи! Подскажите пожалуйста. Как проверить ус...
17.01.24 01:47 комментирует: Олег - Спасибо, проделал на ноутбуке dv5-1040er, скорость реально выросла. Делал на w10...
10.10.23 15:58 комментирует: Евгений - у мене схожа проблема як була у вас... чому ви вирішили ввести 92500000??? дякую...
11.04.23 01:51 комментирует: Володимир