Рейтинг 4.6 из 5. Голосов: 5

translit

Функция 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 адресов, то правильнее будет сменить знак подчеркивания на дефис.

А если вдруг понадобится учитывать перносы в обычном тексте,  то чтобы например броузер не воспринимал все как одно длинное слово - лучше разделителем слов оставить пробел.

Скачать пример ziptranslit.zip

e-max.it: your social media marketing partner
Просмотров: 1452 Печать Назад
 
 
Рекомендуем по теме...