Функция транслитерации php



База Данных


HD-A, ED-00
Чистые глаза (’05,’08,’11)
Шторм Клоуд Фергус Саусимаёк (Фергус) / Storm Kloud Fergus Sausimayok

Wind’s Fury Jacob
Trailblazer

Storm Kloud Kkiss’N Kill
Poland Champion, Junior Poland champion, Junior Winner in Rank Alaskan malamute Club in Poland 2005, Alaskan Malamute Top 10-2005, Hungary Junior Club Winner 2005, Best In Show Junior, res.

Best In Show Speciality Junior

Дата рождения: 28.06.2004 / Заводчик: Nancy C Russell (п-к «Storm Kloud»)
Окрас: серо-белый / Прикус: норма
Клеймо:/ Чип: —
Вес: — кг / Высота в холке: — см
Владелец: Joanna Wisniewska, Польша
e-mail:
тел.: —

 

Правила транслитерации русских имен на английском языке

Выдержка из «Инструкции о порядке оформления и выдачи загранпаспортов» (Приложение к Приказу МВД России от 26 мая 1997 г. N 310)

Одним из способов отображения российских имен на английском языке является транслитерация, представляющая собой процесс простого замещения букв русского алфавита на соответствующие буквы или сочетания букв английского алфавит.

При этом гласные «а», «е», «е», «и», «о», «у», «ы», «э», «ю», «я» соответственно замещаются на «a», «e», или «ye», «e», или «ye», «i», «o», «u», «y», «e», «yu», «ya» (см. таблицу).

А а — a
Б б — b
В в — v
Г г — g
Д д — d
Е е — ye, e
Е е — ye, e
Ж ж — zh
З з — z
И и — i
Й й — y
К к — k
Л л — l
М м — m
Н н — n
О о — o
П п — p
Р р — r
С с — s
Т т — t
У у — u
Ф ф — f
Х х — kh
Ц ц — ts
Ч ч — ch
Ш ш — sh
Щ щ — shch
Ъ ъ — »
Ы ы — y
Ь ь — ‘
Э э — e
Ю ю — yu
Я я — ya

Так называемые дифтонги — сочетания гласной буквы и «й», отражаются следующим образом:
«ай» — «ay»
«ей» — «ey» или «yey»
«ий» — «iy»
«ой» — «oy»
«уй» — «uy»
«ый» — «yy»
«эй» — «ey»
«юй» — «yuy»
«ей» — «yay»

Для распространенных имен существуют стандартизованные написания и правила побуквенной транслитерации к ним не применяются.

Примеры написания наиболее употребимых имен

А
АГАФЬЯ
АГАФОН
АГЕЙ
АКУЛИНА
АЛЕКСАНДР
АЛЕКСЕЙ
АНАСТАСИЯ
АНАТОЛИЙ
АНДРЕЙ
АНИСИЙ
АННА
АНТОНИНА
АНТОН
АРСЕНТИЙ
АРХИП
АКИМ
АФАНАСИЙ

Б
БОРИС

В
ВАЛЕРИАН
ВАЛЕНТИН
ВАРВАРА
ВЯЧЕСЛАВ
ВИКТОР
ВИТАЛИЙ
ВЛАДИМИР
ВЛАС
ВЕРА

Г
ГЕННАДИЙ
ГАВРИИЛ
ГЕОРГИЙ
ГЕРАСИМ
ГЛЕБ
ГРИГОРИЙ

Д
ДАНИИЛ
ДАРЬЯ
ДМИТРИЙ
ДЕНИС

Е
ЕВГЕНИЙ
ЕВДОКИМ
ЕВДОКИЯ
ЕФРОСИНЬЯ
ЕФИМ
ЕКАТЕРИНА
ЕЛИЗАВЕТА
ЕЛЕНА
ЕМЕЛЬЯН
ЕРМОЛАЙ
ЕФРЕМ

З
ЗАХАР
ЗИНАИДА
ЗИНОВИЙ
ЗОЯ

И
ИВАН
ИГНАТ
ИЛЬЯ
ИРИНА
ИОСИФ
ИГОРЬ

К
КИРИЛЛ
КЛЕМЕНТИЙ
КОНСТАНТИН
КУЗЬМА
КСЕНИЯ

Л
ЛАВРЕНТИЙ
ЛАРИОН
ЛЕВ
ЛИДИЯ
ЛЕОНТИЙ
ЛУКА
ЛЮБОВЬ
ЛЮДМИЛА
ЛАРИСА

М
МАКАР
МАКСИМ
МАРИЯ
МАРГАРИТА
МАРФА
МАТРЕНА
МАТВЕЙ
МИТРОФАН
МИХАИЛ

Н
НАДЕЖДА
НАТАЛЬЯ
НИКИТА
НИКИФОР
НИКОЛАЙ

О
ОЛЬГА
ОЛЕГ
ОКСАНА

П
ПАВЕЛ
ПЕЛАГЕЯ
ПРАСКОВЬЯ
ПЕТР
ПЛАТОН
ПОЛИКАРП
ПРОХОР

Р
РОДИОН
РОМАН
РАИСА

С
СЕРГЕЙ
СЕМЕН
СТЕПАН
СТЕПАНИДА
СУСАННА

Т
ТАТЬЯНА
ТИМОФЕЙ
ТРИФОН
ТРОФИМ

У
УЛЬЯНА

Ф
ФЕДОР
ФИЛИПП
ФОМА
ФРОЛ
ФАДЕЙ
ФЕКЛА
ФЕДОСЬЯ
ФЕДОТ

Х
ХАРИТОН
ХРИСТИНА

Ю
ЮЛИЯ
ЮРИЙ

Я
ЯКОВ

     
AGAFIA
AGAFON
AGUEI
AKOULINA
ALEXANDER
ALEXEY
ANASTASIA
ANATOLY
ANDREY
ANISY
ANNA
ANTONINA
ANTON
ARSENTY
ARKHIP
AKIM
AFANASY

BORIS

VALERIAN
VALENTIN
VARVARA
VIATCHESLAV
VICTOR
VITALY
VLADIMIR
VLAS
VERA

GENNADY
GAVRIIL
GEORGY
GERASIM
GLEB
GRIGORY

DANIIL
DARIA
DMITRY
DENIS

EVGENY
EVDOKIM
EVDOKIA
EFROSINIA
EFIM
EKATERINA
ELIZAVETA
ELENA
EMELIAN
ERMOLAY
EFREM

ZAKHAR
ZINAIDA
ZINOVY
ZOYA

IVAN
IGNAT
ILYA
IRINA
IOSIF
IGOR

KIRILL
KLEMENTY
KONSTANTIN
KOUZMA
KSENIA

LAVRENTY
LARION
LEV
LIDIA
LEONTY
LOUKA
LIUBOV
LIUDMILA
LARISA

MAKAR
MAXIM
MARIA
MARGARITA
MARFA
MATRENA
MATVEY
MITROFAN
MIKHAIL

NADEZDA
NATALIA
NIKITA
NIKIFOR
NIKOLAY

OLGA
OLEG
OXANA

PAVEL
PELAGEYA
PRASKOVIA
PETR
PLATON
POLIKARP
PROKHOR

RODION
ROMAN
RAISA

SERGEY
SEMEN
STEPAN
STEPANIDA
SOUSANNA

TATIANA
TIMOFEY
TRIFON
TROFIM

ULIANA

FEDOR
PHILIPP
FOMA
FROL
FADEY
FEKLA
FEDOSIA
FEDOT

KHARITON
KHRISTINA

JULIA
YURI

IAKOV

Русский текст в транслит на PHP

В этой статье я решил показать, как можно перевести русский текст в транслит на PHP. Где это может потребоваться? Например, совсем недавно мне потребовалось сделать следующее: при подписке на обновления сайта, пользователь указывает свои имя и e-mail.

Дальше необходимо автоматически зарегистрировать пользователя на сайте (например, для общения на форуме). Но если, например, пароль ещё можно генерировать случайно, то вот логин должен быть осмысленным. А использовать e-mail в качестве логина на том же форуме — плохая идея. Поэтому было принято решение на основании имени сгенерировать логин.

Например, если имя «Михаил«, то логин должен быть «mihail«. Если такой логин уже занят, то тогда логин «mihail1«, если и он уже занят, то «mihail2» и так далее до свободного. Теперь, собственно, возвращаемся к теме статьи. Вот простейшая функция, которая переводит русский текст в транслит:

Думаю, что здесь код очень прозрачный: есть 2 массива с одинаковым числом элементов. В первом массиве буквы русского алфавита, а во втором в соответствующих позициях их написание в транслите. Затем идёт обычная замена с помощью функции str_replace() и возврат результата.

Вот таким образом делается перевод русского текста в транслит на PHP.

  • Создано 15.01.2014 12:00:43

  • Михаил Русаков

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так:

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
Статьи / PHP /

Как сделать транслит русского текста или строки в PHP?

Транслит — это замена кириллических символов их аналогами в латиннице. Траслитерацию часто используют для создания ЧПУ (человеку-понятных-урлов) и для рассылки информации. И практически каждый программист сталкивался с задачей создания функции транслитерации текста. В данной статье предлагаю посмотреть решение проблемы того, как создать функцию траслита в PHP.

Для этого предлагаю простое и верное решение — создать массив, где каждый символ кириллицы (отдельно и для заглавных букв) будет преобразовываться в аналог из латинского алфавита.

Код PHP

function translitText($str) 
{
    $tr = array(
        "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
        "Д"=>"D","Е"=>"E","Ё"=>"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","ё"=>"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"
    );
    return strtr($str,$tr);
}
Применить функцию достаточно легко. Надеюсь, что все понимают, однако на всякий случай приведу пример.

Код PHP

$text = "Текст"; // Любая переменная с текстом
$translit = translitText($text); // заменят символы в переменной
echo $translit; // выведет ‘tekst’

Как сделать транслит URL в PHP?

Поскольку предыдущая функция решает общие задачи, то предлагаю рассмотреть специализированную — для создания ЧПУ, как упоминал выше, понятного человеку урла.

В результате адрес страницы имеет вид:
adres-stranicy, а лишние символы убираются. Очень нужная вещь!

Код PHP

function translitURL($str) 
{
    $tr = array(
        "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
        "Д"=>"d","Е"=>"e","Ё"=>"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","ё"=>"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", 
        " -"=> "", ","=> "", " "=> "-", "."=> "", "/"=> "_", 
        "-"=> ""
    );
    return strtr($str,$tr);
}

if (preg_match(‘/[^A-Za-z0-9_\-]/’, $urlstr)) {
    $urlstr = translitURL($urlstr);
    $urlstr = preg_replace(‘/[^A-Za-z0-9_\-]/’, », $urlstr);
}
После обработки функцией Вы имеете валидный URL, который можно смело допимывать в адресную строку!

Спасибо за внимание! И помните: выше рейтинг в поисковых системах у той страницы, у которой ключевые слова содержатся уже в адресе (URL).

 

Предыдущая статья
Как определить язык пользователя средствами PHP?Следующая статья
Как создать подключение к базе данных в PHP?

Похожие статьи

Комментарии к статье (vk.com)

Добавить комментарий

Закрыть меню