WebInside

Каталог статей

Перекодировщик translita в кириллицу и обратно на PHP

Версия для печати
Автор: Admin
Просмотров: 50
Слов: 1678
Рейтинг: Нет оценки

   Случалось ли вам переписываться с русскими, которые живут за границей и у которых, соответственно, нет клавиатуры с кириллицей? Эти люди, обычно, пишут языком с интересным названием "translit" (или транслитерация, выражаясь по-русски). Кто в танке, поясняю - это русский текст, набранный латинскими буквами. Его, естественно, очень трудно читать непривыкшему человеку... Но зачем мучаться, если можно написать программу, которая бы перекодировала этот транслит в нашу родную кириллицу. Написанием этой программы мы и займёмся в этой статье.    

   Итак, как Вы уже поняли, сегодня мы напишем на PHP программу которая перекодирует translit в кириллицу и обратно. Лично мне это программа очень помогает, т.к. мне часто приходится иметь дело с письмами, написанными на транслите. Это и вынудило меня написать такую программу. Ну что ж, давайте, наконец, приступим к делу.    

   Сама по себе программа (скрипт) небольшая и будет состоять всего из одного файла. Предлагаю назвать его perekod.php. Сначала в этом файле создаём форму с полем ввода для текста. Код будет выглядеть так   

   <?

   echo"

   <form method=\"post\">

   <table width=100% align=100%>

   <tr><td align=center bgcolor=\"#F9F9F9\"><input type=radio value=ruslat name=translite> <font

   face=verdana size=2>С русского на латиницу</font> <input type=radio value=latrus name=translite> <font

   face=verdana size=2>С латиницы на русский</font></td></tr>

   <tr><td align=center bgcolor=\"#F9F9F9\">

   <textarea name=body cols=65 rows=10>"p; /* Пока мы создали только форму до поля ввода текста. Всё выполнение функций будет происходить именно в ней */

   

   /* Теперь задаём сами функции перекодировки translita в кириллицу и обратно. Вот код: */

   

   function ruslat ($string) # Задаём функцию перекодировки кириллицы в транслит.

   {

   $string = ereg_replace("ж","zh",$string);

   $string = ereg_replace("ё","yo",$string);

   $string = ereg_replace("й","i",$string);

   $string = ereg_replace("ю","yu",$string);

   $string = ereg_replace("ь","'",$string);

   $string = ereg_replace("ч","ch",$string);

   $string = ereg_replace("щ","sh",$string);

   $string = ereg_replace("ц","c",$string);

   $string = ereg_replace("у","u",$string);

   $string = ereg_replace("к","k",$string);

   $string = ereg_replace("е","e",$string);

   $string = ereg_replace("н","n",$string);

   $string = ereg_replace("г","g",$string);

   $string = ereg_replace("ш","sh",$string);

   $string = ereg_replace("з","z",$string);

   $string = ereg_replace("х","h",$string);

   $string = ereg_replace("ъ","''",$string);

   $string = ereg_replace("ф","f",$string);

   $string = ereg_replace("ы","y",$string);

   $string = ereg_replace("в","v",$string);

   $string = ereg_replace("а","a",$string);

   $string = ereg_replace("п","p",$string);

   $string = ereg_replace("р","r",$string);

   $string = ereg_replace("о","o",$string);

   $string = ereg_replace("л","l",$string);

   $string = ereg_replace("д","d",$string);

   $string = ereg_replace("э","yе",$string);

   $string = ereg_replace("я","jа",$string);

   $string = ereg_replace("с","s",$string);

   $string = ereg_replace("м","m",$string);

   $string = ereg_replace("и","i",$string);

   $string = ereg_replace("т","t",$string);

   $string = ereg_replace("б","b",$string);

   $string = ereg_replace("Ё","yo",$string);

   $string = ereg_replace("Й","I",$string);

   $string = ereg_replace("Ю","YU",$string);

   $string = ereg_replace("Ч","CH",$string);

   $string = ereg_replace("Ь","'",$string);

   $string = ereg_replace("Щ","SH'",$string);

   $string = ereg_replace("Ц","C",$string);

   $string = ereg_replace("У","U",$string);

   $string = ereg_replace("К","K",$string);

   $string = ereg_replace("Е","E",$string);

   $string = ereg_replace("Н","N",$string);

   $string = ereg_replace("Г","G",$string);

   $string = ereg_replace("Ш","SH",$string);

   $string = ereg_replace("З","Z",$string);

   $string = ereg_replace("Х","H",$string);

   $string = ereg_replace("Ъ","''",$string);

   $string = ereg_replace("Ф","F",$string);

   $string = ereg_replace("Ы","Y",$string);

   $string = ereg_replace("В","V",$string);

   $string = ereg_replace("А","A",$string);

   $string = ereg_replace("П","P",$string);

   $string = ereg_replace("Р","R",$string);

   $string = ereg_replace("О","O",$string);

   $string = ereg_replace("Л","L",$string);

   $string = ereg_replace("Д","D",$string);

   $string = ereg_replace("Ж","Zh",$string);

   $string = ereg_replace("Э","Ye",$string);

   $string = ereg_replace("Я","Ja",$string);

   $string = ereg_replace("С","S",$string);

   $string = ereg_replace("М","M",$string);

   $string = ereg_replace("И","I",$string);

   $string = ereg_replace("Т","T",$string);

   $string = ereg_replace("Б","B",$string);

   return $string;

   }

   

   /* Можете, конечно, задать любой другой алфавит. По крайней здесь я использовал тот алфавит, которым сам обычно пишу письма транслитом*/

   function latrus ($string) # Теперь задаём функцию перекодировки транслита в кириллицу.

   {

   $string = ereg_replace("zh","ж",$string);

   $string = ereg_replace("Zh","Ж",$string);

   $string = ereg_replace("yo","ё",$string);

   $string = ereg_replace("Yu","Ю",$string);

   $string = ereg_replace("Ju","Ю",$string);

   $string = ereg_replace("ju","ю",$string);

   $string = ereg_replace("yu","ю",$string);

   $string = ereg_replace("sh","ш",$string);

   $string = ereg_replace("yе","э",$string);

   $string = ereg_replace("jа","я",$string);

   $string = ereg_replace("yа","я",$string);

   $string = ereg_replace("Sh","Ш",$string);

   $string = ereg_replace("Ch","Ч",$string);

   $string = ereg_replace("ch","ч",$string);

   $string = ereg_replace("Yo","Ё",$string);

   $string = ereg_replace("Ya","Я",$string);

   $string = ereg_replace("Ja","Я",$string);

   $string = ereg_replace("Ye","Э",$string);

   $string = ereg_replace("i","и",$string);

   $string = ereg_replace("'","ь",$string);

   $string = ereg_replace("c","ц",$string);

   $string = ereg_replace("u","у",$string);

   $string = ereg_replace("k","к",$string);

   $string = ereg_replace("e","е",$string);

   $string = ereg_replace("n","н",$string);

   $string = ereg_replace("g","г",$string);

   $string = ereg_replace("z","з",$string);

   $string = ereg_replace("h","х",$string);

   $string = ereg_replace("''","ъ",$string);

   $string = ereg_replace("f","ф",$string);

   $string = ereg_replace("y","ы",$string);

   $string = ereg_replace("v","в",$string);

   $string = ereg_replace("a","а",$string);

   $string = ereg_replace("p","п",$string);

   $string = ereg_replace("r","p",$string);

   $string = ereg_replace("o","о",$string);

   $string = ereg_replace("l","л",$string);

   $string = ereg_replace("d","д",$string);

   $string = ereg_replace("s","с",$string);

   $string = ereg_replace("m","м",$string);

   $string = ereg_replace("t","т",$string);

   $string = ereg_replace("b","б",$string);

   $string = ereg_replace("I","Й",$string);

   $string = ereg_replace("'","Ь",$string);

   $string = ereg_replace("C","Ц",$string);

   $string = ereg_replace("U","У",$string);

   $string = ereg_replace("K","К",$string);

   $string = ereg_replace("E","Е",$string);

   $string = ereg_replace("N","Н",$string);

   $string = ereg_replace("G","Г",$string);

   $string = ereg_replace("Z","З",$string);

   $string = ereg_replace("H","Х",$string);

   $string = ereg_replace("''","Ъ",$string);

   $string = ereg_replace("F","Ф",$string);

   $string = ereg_replace("Y","Ы",$string);

   $string = ereg_replace("V","В",$string);

   $string = ereg_replace("A","А",$string);

   $string = ereg_replace("P","П",$string);

   $string = ereg_replace("R","Р",$string);

   $string = ereg_replace("O","О",$string);

   $string = ereg_replace("L","Л",$string);

   $string = ereg_replace("D","Д",$string);

   $string = ereg_replace("S","С",$string);

   $string = ereg_replace("M","М",$string);

   $string = ereg_replace("I","И",$string);

   $string = ereg_replace("T","Т",$string);

   $string = ereg_replace("B","Б",$string);

   

   return $string;

   }

   /*Код конечно большой, но что ж поделаешь, уж такой у нас алфавит:) Можно конечно было использовать вместо функции ereg_replace функцию eregi_replace, чтобы хоть как-то уменьшить код, но тогда при перекодировке текста регистр символов не сохранялся бы*/

   

   /*Остался совсем небольшой код с помощью которого и будет происходить перекодировка текста. Итак, вот он:*/

   

   if ($action == "TRANSLIT") {

   if ($translite == "ruslat") {

   if ($body == "") {

   echo "А текст-то где?"; /* Предупреждаем пользователя на тот случай, если он не введёт текст.*/

   }

   else {

   $body = ruslat($body);

   echo "$body"; /* Иначе выводим пользователю уже перекодированный текст*/

   }

   }

   if ($translite == "latrus"){

   if ($body == ""){

   echo "А текст-то где?"; /* Предупреждаем пользователя на тот случай, если он не введёт текст.*/

   }

   else{

   $body = latrus($body);

   echo "$body"; /* Иначе выводим пользователю уже перекодированный текст*/

   }

   }

   if ($translite == ""){

   echo "А перекодировать-то с чего на что будем?"; /* Предупреждаем пользователя на тот случай, если он не выбирет с чего на что необходимо перекодировать.*/

   }

   }

   echo"

   </textarea></td></tr>

   <tr><td align=center bgcolor=\"#F9F9F9\"><input type=submit name=action value=TRANSLIT></td></tr>

   <table>

   "; /* Выводим нижнюю часть формы с кнопкой, приводящей в действие скрипт*/

   ?>

    Внимание: Если версия PHP-интерпретатора 4.0.3 и выше, или в конфигурации PHP включена директива track_vars, то вначале данного когда вставьте эти две строчки: extract($HTTP_GET_VARS);

   extract($HTTP_POST_VARS);    

   Как видите сам скрипт очень даже простой и, надеюсь, не вызовет у вас затруднений.

Об авторе



Читайте также в нашем каталоге:


Комментарии

Комментарии отсутствуют
Добавить комментарий

Введите код с изображения

Visual CAPTCHA