Задание:
Написать функцию kirToLat($str) для замены входящего текста из кириллицы на транслит, используя готовый массив алфавита:
[spoiler title=»Готовый массив»]
$abc = ["А"=>"A", "а"=>"а", "Б"=>"B", "б"=>"b", "В"=>"V", "в"=>"v", "Г"=>"G", "г"=>"g", "Д"=>"D", "д"=>"d", "Е"=>"E", "е"=>"e", "Ё"=>"YO", "ё"=>"yo", "Ж"=>"J", "ж"=>"j", "З"=>"Z", "з"=>"z", "И"=>"i", "и"=>"i", "Й"=>"Y", "й"=>"y", "К"=>"K", "к"=>"k", "Л"=>"L", "л"=>"l", "М"=>"M", "м"=>"m", "Н"=>"N", "н"=>"n", "О"=>"O", "о"=>"o", "П"=>"P", "п"=>"p", "Р"=>"R", "р"=>"r", "С"=>"S", "с"=>"s", "Т"=>"T", "т"=>"t", "У"=>"U", "у"=>"u", "Ф"=>"F", "ф"=>"f", "Х"=>"H", "х"=>"h", "Ц"=>"C", "ц"=>"c", "Ч"=>"CH", "ч"=>"ch", "Ш"=>"SH", "ш"=>"sh", "Щ"=>"ScH", "щ"=>"sch", "Ъ"=>"'", "ъ"=>"'", "Ы"=>"I", "ы"=>"i", "Ь"=>"'", "ь"=>"'", "Э"=>"E'", "э"=>"e'", "Ю"=>"YU", "ю"=>"yu", "Я"=>"YA", "я"=>"ya",];
[/spoiler]
Обязательные условия:
- Заменить символы используя цикл foreach. Урок 10. Использование цикла foreach
- Функция должна возвращать полученную строку в транслите с помощью return. Урок 11. Написание своих функций
-
<? if(isset($_POST['str'])) { echo "<p><b>Первоначальная строка: </b>".trim($_POST['str'])."</p>"; echo "<p><b>Полученная строка транслитом: </b>".kirToLat(trim($_POST['str']))."</p>"; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Перевод кирилицы в латиницу</title> </head> <body> <form action="" method="post"> <input type="text" name="str" placeholder="Введите текст для перевода в кирилицу"> <input type="submit" value="Перевести"> </form> </body> </html>
Результат выполнения функции:
[spoiler title=»Решение»]
<? function kirToLat($str) { $abc = ["А"=>"A", "а"=>"а", "Б"=>"B", "б"=>"b", "В"=>"V", "в"=>"v", "Г"=>"G", "г"=>"g", "Д"=>"D", "д"=>"d", "Е"=>"E", "е"=>"e", "Ё"=>"YO", "ё"=>"yo", "Ж"=>"J", "ж"=>"j", "З"=>"Z", "з"=>"z", "И"=>"i", "и"=>"i", "Й"=>"Y", "й"=>"y", "К"=>"K", "к"=>"k", "Л"=>"L", "л"=>"l", "М"=>"M", "м"=>"m", "Н"=>"N", "н"=>"n", "О"=>"O", "о"=>"o", "П"=>"P", "п"=>"p", "Р"=>"R", "р"=>"r", "С"=>"S", "с"=>"s", "Т"=>"T", "т"=>"t", "У"=>"U", "у"=>"u", "Ф"=>"F", "ф"=>"f", "Х"=>"H", "х"=>"h", "Ц"=>"C", "ц"=>"c", "Ч"=>"CH", "ч"=>"ch", "Ш"=>"SH", "ш"=>"sh", "Щ"=>"ScH", "щ"=>"sch", "Ъ"=>"'", "ъ"=>"'", "Ы"=>"I", "ы"=>"i", "Ь"=>"'", "ь"=>"'", "Э"=>"E'", "э"=>"e'", "Ю"=>"YU", "ю"=>"yu", "Я"=>"YA", "я"=>"ya",]; if(!$str or $str == "") {return false;} else { foreach ($abc as $rep_char => $char) { $str = str_replace($rep_char, $char, $str); } return $str; } } if(isset($_POST['str'])) { echo "<p><b>Первоначальная строка: </b>".trim($_POST['str'])."</p>"; echo "<p><b>Полученная строка транслитом: </b>".kirToLat(trim($_POST['str']))."</p>"; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Перевод кирилицы в латиницу</title> </head> <body> <form action="" method="post"> <input type="text" name="str" placeholder="Введите текст для перевода в кирилицу"> <input type="submit" value="Перевести"> </form> </body> </html>
[/spoiler]