PHP

Транслитерация по ГОСТ

PHP функции для транслита текста на русском языке по ГОСТ 7.79-2000 (ИСО 9-95) система «Б»*.

Кириллическая Латинская Кириллическая Латинская
А A а a
Б B б b
В V в v
Г G г g
Д D д d
Е E е e
Ё Yo ё yo
Ж Zh ж zh
З Z з z
И I и i
Й J й j
К K к k
Л L л l
М M м m
Н N н n
О O о o
П P п p
Р R р r
С S с s
Т T т t
У U у u
Ф F ф f
Х X х x
Ц Cz ц cz
Ч Ch ч ch
Ш Sh ш sh
Щ Shh щ shh
Ъ `` ъ ``
Ы Y` ы y`
Ь ` ь `
Э E` э e`
Ю Yu ю yu
Я Ya я ya
function translit($value)
{
    $converter = array(
        'А' => 'A',    'Б' => 'B',    'В' => 'V',    'Г' => 'G',    'Д' => 'D',
        'Е' => 'E',    'Ё' => 'Yo',   'Ж' => 'Zh',   'З' => 'Z',    'И' => 'I',
        'Й' => 'J',    'К' => 'K',    'Л' => 'L',    'М' => 'M',    'Н' => 'N',
        'О' => 'O',    'П' => 'P',    'Р' => 'R',    'С' => 'S',    'Т' => 'T',
        'У' => 'U',    'Ф' => 'F',    'Х' => 'X',    'Ц' => 'Cz',   'Ч' => 'Ch',
        'Ш' => 'Sh',   'Щ' => 'Shh',  'Ъ' => '``',   'Ы' => 'Y`',   'Ь' => '`',
        'Э' => 'E`',   'Ю' => 'Yu',   'Я' => 'Ya',   

        'а' => 'a',    'б' => 'b',    'в' => 'v',    'г' => 'g',    'д' => 'd',
        'е' => 'e',    'ё' => 'yo',   'ж' => 'zh',   'з' => 'z',    'и' => 'i',
        'й' => 'j',    'к' => 'k',    'л' => 'l',    'м' => 'm',    'н' => 'n',
        'о' => 'o',    'п' => 'p',    'р' => 'r',    'с' => 's',    'т' => 't',
        'у' => 'u',    'ф' => 'f',    'х' => 'x',    'ц' => 'cz',   'ч' => 'ch',
        'ш' => 'sh',   'щ' => 'shh',  'ъ' => '``',   'ы' => 'y`',   'ь' => '`',
        'э' => 'e`',   'ю' => 'yu',   'я' => 'ya'
    );

    $value = strtr($value, $converter);
    return $value;
}

echo translit('Съешь же ещё этих мягких французских булок, да выпей чаю.');

Результат:

S``esh` zhe eshhyo e`tix myagkix franczuzskix bulok, da vy`pej chayu.

Обратный перевод текста

Ретранслитерация производится в 3 этапа:

Латинская Кириллическая Латинская Кириллическая
Трехбуквенные сочетания
Shh Щ shh щ
Двухбуквенные сочетания
Yo Ё yo ё
Zh Ж zh ж
Cz Ц cz ц
Ch Ч ch ч
Sh Ш sh ш
`` Ъ `` ъ
Y` Ы y` ы
E` Э e` э
Yu Ю yu ю
Ya Я ya я
Однобуквенные соответствия
A А a а
B Б b б
V В v в
G Г g г
D Д d д
E Е e е
Z З z з
I И i и
J Й j й
K К k к
L Л l л
M М m м
N Н n н
O О o о
P П p п
R Р r р
S С s с
T Т t т
U У u у
F Ф f ф
X Х x х
` Ь ` ь
function untranslit($value)
{
    $step_1 = array(
        'SHH' => 'Щ',   'Shh' => 'Щ',   'shh' => 'щ'
    );

    $value = strtr($value, $step_1);
    
    $step_2 = array(
        'YO' => 'Ё',    'ZH' => 'Ж',    'CZ' => 'Ц',    'CH' => 'Ч',    'SH' => 'Ш',
        'Y`' => 'Ы',    'E`' => 'Э',    'YU' => 'Ю',    'YA' => 'Я',    
        
        'Yo' => 'Ё',    'Zh' => 'Ж',    'Cz' => 'Ц',    'Ch' => 'Ч',    'Sh' => 'Ш',
        'Yu' => 'Ю',    'Ya' => 'Я',

        'yo' => 'ё',    'zh' => 'ж',    'cz' => 'ц',    'ch' => 'ч',    'sh' => 'ш',
        'y`' => 'ы',    'e`' => 'э',    'yu' => 'ю',    'ya' => 'я',    '``' => 'ъ',
    );

    $value = strtr($value, $step_2);

    $step_3 = array(    
        'A' => 'А',     'B' => 'Б',     'V' => 'В',     'G' => 'Г',     'D' => 'Д',
        'E' => 'Е',     'Z' => 'З',     'I' => 'И',     'J' => 'Й',     'K' => 'К',
        'L' => 'Л',     'M' => 'М',     'N' => 'Н',     'O' => 'О',     'P' => 'П',
        'R' => 'Р',     'S' => 'С',     'T' => 'Т',     'U' => 'У',     'F' => 'Ф',
        'X' => 'Х',

        'a' => 'а',     'b' => 'б',     'v' => 'в',     'g' => 'г',     'd' => 'д',
        'e' => 'е',     'z' => 'з',     'i' => 'и',     'j' => 'й',     'k' => 'к',
        'l' => 'л',     'm' => 'м',     'n' => 'н',     'o' => 'о',     'p' => 'п',
        'r' => 'р',     's' => 'с',     't' => 'т',     'u' => 'у',     'f' => 'ф',
        'x' => 'х',     '`' => 'ь',
    );

    $value = strtr($value, $step_3);
    return $value;
}

echo untranslit('S``esh` zhe eshhyo e`tix myagkix franczuzskix bulok, da vy`pej chayu.');

Результат:

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

* Источник данных http://docs.cntd.ru/document/1200026226

В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают в спам или...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать...