Created
May 16, 2010 06:52
-
-
Save ivanscm/402721 to your computer and use it in GitHub Desktop.
Модуль склонения личных имен существительных по падежам.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
################################################### | |
# Модуль склонения личных имен существительных по падежам | |
# Кодинг Иван Григорьев aka IvanSCM | |
# Склонения по падежам подготовил Лапин Алексей aka NuBiK | |
# 5. 04. 2010 12.00 | |
#################################################### | |
function CaseName($name, $case) { | |
$end_case = array(); | |
switch ($case){ | |
case "rod": // родительный - Кого? Чего? | |
$end_case = array('а' => 'ы', 'б' => 'ба', 'в' => 'ва', 'г' => 'га', 'д' => 'да', 'е' => 'е', 'ж' => 'жа', 'з' => 'за', 'и' => 'и', 'й' => 'я', 'к' => 'ка', 'л' => 'ла', 'м' => 'ма', 'н' => 'на', 'о' => 'о', 'п' => 'па', 'р' => 'ра', 'с' => 'са', 'т' => 'та', 'у' => 'у', 'ф' => 'фа', 'х' => 'ха', 'ч' => 'ча', 'ш' => 'ша', 'э' => 'э', 'ю' => 'ю', 'ь' => 'я', 'я' => 'и', 'ы' => 'ю'); | |
break; | |
case "dat": // дательный - Кому? Чему? | |
$end_case = array('а' => 'е', 'б' => 'бу', 'в' => 'ву', 'г' => 'гу', 'д' => 'ду', 'е' => 'е', 'ж' => 'жу', 'з' => 'зу', 'и' => 'и', 'й' => 'ю', 'к' => 'ку', 'л' => 'лу', 'м' => 'му', 'н' => 'ну', 'о' => 'о', 'п' => 'пу', 'р' => 'ру', 'с' => 'су', 'т' => 'ту', 'у' => 'у', 'ф' => 'фу', 'х' => 'ху', 'ч' => 'чу', 'ш' => 'шу', 'э' => 'э', 'ю' => 'ю', 'ь' => 'ю', 'я' => 'ю', 'ы' => 'у'); | |
break; | |
case "vin": // винительный - Кого? Что? | |
$end_case = array('а' => 'у', 'б' => 'ба', 'в' => 'ва', 'г' => 'га', 'д' => 'да', 'е' => 'е', 'ж' => 'жа', 'з' => 'за', 'и' => 'и', 'й' => 'я', 'к' => 'ка', 'л' => 'ла', 'м' => 'ма', 'н' => 'на', 'о' => 'о', 'п' => 'па', 'р' => 'ра', 'с' => 'са', 'т' => 'та', 'у' => 'у', 'ф' => 'фа', 'х' => 'ха', 'ч' => 'ча', 'ш' => 'ша', 'э' => 'э', 'ю' => 'ю', 'ь' => 'ю', 'я' => 'ю', 'ы' => 'ю'); | |
break; | |
case "tvo": // творительный - Кем? Чем? | |
$end_case = array('а' => 'ой', 'б' => 'бом', 'в' => 'вом', 'г' => 'гом', 'д' => 'дом', 'е' => 'е', 'ж' => 'жом', 'з' => 'зом', 'и' => 'и', 'й' => 'ем', 'к' => 'ком', 'л' => 'лом', 'м' => 'мом', 'н' => 'ном', 'о' => 'о', 'п' => 'пом', 'р' => 'ром', 'с' => 'сом', 'т' => 'том', 'у' => 'у', 'ф' => 'фом', 'х' => 'хом', 'ч' => 'чом', 'ш' => 'шом', 'э' => 'э', 'ю' => 'ю', 'ь' => 'ьей', 'я' => 'ей', 'ы' => 'ей'); | |
break; | |
case "pre": // предложный - О ком? О чём? | |
$end_case = array('а' => 'е', 'б' => 'бе', 'в' => 'ве', 'г' => 'ге', 'д' => 'де', 'е' => 'е', 'ж' => 'же', 'з' => 'зе', 'и' => 'и', 'й' => 'е', 'к' => 'ке', 'л' => 'ле', 'м' => 'ме', 'н' => 'не', 'о' => 'о', 'п' => 'пе', 'р' => 'ре', 'с' => 'се', 'т' => 'те', 'у' => 'у', 'ф' => 'фе', 'х' => 'хе', 'ч' => 'че', 'ш' => 'ше', 'э' => 'э', 'ю' => 'ю', 'ь' => 'и', 'я' => 'е', 'ы' => 'и'); | |
break; | |
default: | |
$end_case = array(); | |
} | |
$srt_count = strlen($name); | |
$srt_end = $name{$srt_count-2}.$name{$srt_count-1}; | |
$srt_name = substr($name, 0, $srt_count-2); | |
return $srt_name . $end_case[$srt_end]; | |
} | |
?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> | |
<form method="POST"> | |
Введите имя: <input name="name" type="text"> | |
<input type="submit" value="Просклонять"> | |
</form> | |
<hr /> | |
<?php | |
include("functions/namecase.php"); | |
if (!empty($_POST['name'])){ | |
echo ' | |
<TABLE BORDER> | |
<TR> | |
<TH>Русское название</TH> <TH>Имя в падеже</TH> <TH>Характеризующий вопрос</TH> | |
</TR> | |
<TR> | |
<TD>Именительный</TD> <TD>'.$_POST['name'].'</TD> <TD>Кто? Что?</TD> | |
</TR> | |
<TR> | |
<TD>Родительный</TD> <TD>'.CaseName($_POST['name'],"rod").'</TD> <TD>Кого? Чего?</TD> | |
</TR> | |
<TR> | |
<TD>Дательный</TD> <TD>'.CaseName($_POST['name'],"dat").'</TD> <TD>Кому? Чему?</TD> | |
</TR> | |
<TR> | |
<TD>Винительный</TD> <TD>'.CaseName($_POST['name'],"vin").'</TD> <TD>Кого? Что?</TD> | |
</TR> | |
<TR> | |
<TD>Творительный</TD> <TD>'.CaseName($_POST['name'],"tvo").'</TD> <TD>Кем? Чем?</TD> | |
</TR> | |
<TR> | |
<TD>Предложный</TD> <TD>'.CaseName($_POST['name'],"pre").'</TD> <TD>О ком? О чём?</TD> | |
</TR> | |
</TABLE> | |
'; | |
} else { | |
echo 'Введите русскоязычное имя в именительном падеже и нажмите кнопку "Просклонять" '; | |
} | |
?> | |
<hr /> | |
(C) 2010 Григорьев Иван |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment