от латиница към кирилица в php

На скоро се сблъсках с следния проблем. В поле за търсене, буквите написани на латиница трябваше да се преобръщат в кирилица.
Ето как реших моя проблем:

	
		$cyr = array( 'ч', 'Ч', 'щ', 'Щ', 'ш', 'Ш',
					  'ц', 'Ц', 'ц', 'Ц',
					  'ю', 'Ю', 'ю', 'Ю',  
				 	  'я', 'Я', 'я', 'Я',
					  'а', 'А', 'б', 'Б', 'в', 'В', 'в', 'В',     
					  'г', 'Г', 'д', 'Д', 'е', 'Е', 
					  'ж', 'Ж', 'ж', 'Ж', 'з', 'З',  
					  'и', 'И', 
					  //'й', 'Й', 
					  'к', 'К', 'л', 'Л', 'м', 'М', 'н', 'Н', 
					  'о', 'О', 'п', 'П', 'р', 'Р', 'с', 'С',
					  'т', 'Т', 'у', 'У', 'ф', 'Ф', 'х', 'Х', 
					  'ъ', 'Ъ',  
					  //'ь', 
					);

		$lat = array( 'ch', 'CH', 'sht', 'SHT', 'sh', 'SH', 
		   			  'c', 'C', 'ts', 'TS', 
					  'iu', 'IU', 'yu', 'YU',
					  'q', 'Q', 'ya', 'YA', 
					  'a', 'A', 'b', 'B', 'v', 'V', 'w', 'W',
					  'g', 'G', 'd', 'D', 'e', 'E', 					  
					  'zh', 'ZH', 'j', 'J', 'z', 'Z', 
					  'i', 'I', 
					  //'', '', 
					  'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 
					  'o', 'O', 'p', 'P', 'r', 'R', 's', 'S',  
					  't', 'T', 'u', 'U', 'f', 'F', 'h', 'H',  
					  'y', 'Y', 
					  //'',
			   		);

		$textcyr = str_replace($lat, $cyr, $word);

$word е думата, която трябва да бъде променена от латиница към кирилица.

Общо взето това е. При мен свърши добра работа, ще се радвам ако помогне и на някой друг.

ПС. Все още не съм се сетил за подходящ превод на буквите “й” и “ь”. Бих се радвал, ако споделите мнение/препоръка/забележка в коментарите. 🙂

0 thoughts on “от латиница към кирилица в php

  1. Владо

    Има закон за транслитерацията на българските букви! Търси го в Lex.bg и го прилагай 😉 Писах нещо подобно на C#, та май ще е добра идея и аз да го метна в нета…

    Reply
  2. metodiew Post author

    Благодаря за информацията!
    Ще го потърся и ще видя за какво става въпрос.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.