[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задача транлитерация
Андрей_М
Добрый день.
Есть учебная задача.
"Сделайте функцию, которая принимает строку на русском языке, а возвращает ее транслит".

Если не сложно, дайте плз. обратную связь по решению.
(уровень - ученик).
Ограничения. Транслитерируется строка приведенная к строчным буквам.

<!--- форма для ввода текста для транслитерации --->
<form method="post" action="">
<p>
<textarea name="text"></textarea>
</p>
<p>
<button type="submit" name="send" value="test">translit</button>
</p>
</form>
	<?php
// var_dump ($_POST['text']);
echo '<br><br>';
if(!empty($_POST['text'])) { // проверяем введен ли текст, вызываем функцию для обработки и возвращаем транслитерированный.
echo 'введенный текст для транслитерации - '.$text_for_translit=mb_strtolower ($_POST['text'],'utf-8'); // приводим все буквы к строчным.
echo '<br><br>';
$translit_1=translit($text_for_translit);
}
else echo 'текст для транлитерации не введен';
echo '<br>';
echo 'транслитерированный текст - '.$translit_1;
?>

Сама функция.


[php]<?php
function
translit($text_for_translit){
$arr_rus=['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я',' '];
$arr_lat=['a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','cz','ch','sh','shh','`','y','``','e`','yu','ya',' '];
$arr_translit = array_combine($arr_lat,$arr_rus); // создаем таблицу транлитерации

$n=mb_strlen ($text_for_translit); //определяем длину строки
for ($n_simv=0; $n_simv < $n; ++$n_simv){
$simv=mb_substr ($text_for_translit,$n_simv,1); //берем один символ
$simv_t=array_search ($simv,$arr_translit); //ищем этот символ в таблице транслитерации и возвращаем ключ (транслитерированный символ)
if ($simv_t==false) $simv_t=$simv; // оставляем символы, которын нет в таблице - в том же виде.
$arr_translit_text[]=$simv_t;//добавляем в массив транслитерированный символ)
}
$translit_1=implode($arr_translit_text); // преобразуем массив в строку
return $translit_1;
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.