Функцию писал для себя. В роде Кого/Чего.
Много беды предоставило то,что php плохо работает с многобайтными кодировками,типа UTF-8,по-этому некоторые строчки можно было б упростить (если бы вместо руссского был английский). Ну,главное работает.
Пока писал,вспоминал все имена и их возможные окончания,если что не хватает,добавите сами*

                        
function name($name)
{
mb_internal_encoding('UTF-8'); //ставим кодировку
$name = mb_strtolower(trim($name)); //строка (имя)
$c = mb_strlen($name); //считаем к-во букв
$c2 = ($c-2); //отнимаем 2 для старта отсчета
$r = mb_substr($name,$c2,$c); //вырезаем 2 последних буквы для шаблона
//далее делаем замены
$name = (mb_stristr($r,'ий')) ? str_replace($r,'ия',$name) : $name;
$name = (mb_stristr($r,'ей')) ? str_replace($r,'ея',$name) : $name;
$name = (mb_stristr($r,'др')) ? str_replace($r,'дра',$name) : $name;
$name = (mb_stristr($r,'ша')) ? str_replace($r,'ши',$name) : $name;
$name = (mb_stristr($r,'ия')) ? str_replace($r,'ии',$name) : $name;
$name = (mb_stristr($r,'на')) ? str_replace($r,'ны',$name) : $name;
$name = (mb_stristr($r,'ка')) ? str_replace($r,'ки',$name) : $name;
$name = (mb_stristr($r,'ня')) ? str_replace($r,'ни',$name) : $name;
$name = (mb_stristr($r,'ан')) ? str_replace($r,'ана',$name) : $name;
$name = (mb_stristr($r,'ля')) ? str_replace($r,'ли',$name) : $name;
$name = (mb_stristr($r,'ся')) ? str_replace($r,'си',$name) : $name;
$name = (mb_stristr($r,'са')) ? str_replace($r,'сы',$name) : $name;
$name = (mb_stristr($r,'та')) ? str_replace($r,'ты',$name) : $name;
$name = (mb_stristr($r,'ик')) ? str_replace($r,'ика',$name) : $name;
$name = (mb_stristr($r,'ор')) ? str_replace($r,'ора',$name) : $name;
$name = (mb_stristr($r,'ин')) ? str_replace($r,'ина',$name) : $name;
$name = (mb_stristr($r,'ль')) ? str_replace($r,'ля',$name) : $name;
$name = (mb_stristr($r,'ля')) ? str_replace($r,'ли',$name) : $name;
$name = (mb_stristr($r,'за')) ? str_replace($r,'зы',$name) : $name;
$name = (mb_stristr($r,'он')) ? str_replace($r,'она',$name) : $name;
$name = (mb_stristr($r,'ир')) ? str_replace($r,'ира',$name) : $name;
$name = (mb_stristr($r,'ра')) ? str_replace($r,'ры',$name) : $name;
$name = (mb_stristr($r,'га')) ? str_replace($r,'ги',$name) : $name;
$name = (mb_stristr($r,'ок')) ? str_replace($r,'ока',$name) : $name;
$name = (mb_stristr($r,'ав')) ? str_replace($r,'ава',$name) : $name;
$name = (mb_stristr($r,'ый')) ? str_replace($r,'ого',$name) : $name;
$name = (mb_stristr($r,'ер')) ? str_replace($r,'ера',$name) : $name;
$name = (mb_stristr($r,'им')) ? str_replace($r,'има',$name) : $name;
$name = (mb_stristr($r,'кс')) ? str_replace($r,'кса',$name) : $name;
$name = (mb_stristr($r,'от')) ? str_replace($r,'ота',$name) : $name;
$name = (mb_stristr($r,'ма')) ? str_replace($r,'мы',$name) : $name;
$name = (mb_stristr($r,'ев')) ? str_replace($r,'ева',$name) : $name;
$name = (mb_stristr($r,'ил')) ? str_replace($r,'ила',$name) : $name;
$name = mb_strtoupper(mb_substr($name,0,1)) . mb_substr($name,1); //делаем первую букву в Верхнем регистре
return $name; //возвращаем результат
}

echo name('Михаил'); //пример использования
1 12 0
0

Нет фото
• 23 апр 2014, 08:30


function names($names)
{
mb_internal_encoding('UTF-8'); //ставим кодировку
$names = mb_strtolower(trim($names)); //строка (имя)
$c = mb_strlen($names); //считаем к-во букв
$c2 = ($c-2); //отнимаем 2 для старта отсчета
$r = mb_substr($names,$c2,$c); //вырезаем 2 последних буквы для шаблона
//далее делаем замены
$names = (mb_stristr($r,'ий')) ? str_replace($r,'ию',$names) : $names;
$names = (mb_stristr($r,'ей')) ? str_replace($r,'ею',$names) : $names;
$names = (mb_stristr($r,'др')) ? str_replace($r,'дру',$names) : $names;
$names = (mb_stristr($r,'ша')) ? str_replace($r,'ше',$names) : $names;
$names = (mb_stristr($r,'ия')) ? str_replace($r,'ии',$names) : $names;
$names = (mb_stristr($r,'на')) ? str_replace($r,'не',$names) : $names;
$names = (mb_stristr($r,'ка')) ? str_replace($r,'ке',$names) : $names;
$names = (mb_stristr($r,'ня')) ? str_replace($r,'не',$names) : $names;
$names = (mb_stristr($r,'ан')) ? str_replace($r,'ану',$names) : $names;
$names = (mb_stristr($r,'ля')) ? str_replace($r,'ле',$names) : $names;
$names = (mb_stristr($r,'ся')) ? str_replace($r,'се',$names) : $names;
$names = (mb_stristr($r,'са')) ? str_replace($r,'се',$names) : $names;
$names = (mb_stristr($r,'та')) ? str_replace($r,'те',$names) : $names;
$names = (mb_stristr($r,'ик')) ? str_replace($r,'ику',$names) : $names;
$names = (mb_stristr($r,'ор')) ? str_replace($r,'ору',$names) : $names;
$names = (mb_stristr($r,'ин')) ? str_replace($r,'ину',$names) : $names;
$names = (mb_stristr($r,'ль')) ? str_replace($r,'лю',$names) : $names;
$names = (mb_stristr($r,'за')) ? str_replace($r,'зе',$names) : $names;
$names = (mb_stristr($r,'он')) ? str_replace($r,'ону',$names) : $names;
$names = (mb_stristr($r,'ир')) ? str_replace($r,'иру',$names) : $names;
$names = (mb_stristr($r,'ра')) ? str_replace($r,'ре',$names) : $names;
$names = (mb_stristr($r,'га')) ? str_replace($r,'ге',$names) : $names;
$names = (mb_stristr($r,'ок')) ? str_replace($r,'оку',$names) : $names;
$names = (mb_stristr($r,'ав')) ? str_replace($r,'аву',$names) : $names;
$names = (mb_stristr($r,'ый')) ? str_replace($r,'ому',$names) : $names;
$names = (mb_stristr($r,'ер')) ? str_replace($r,'еру',$names) : $names;
$names = (mb_stristr($r,'им')) ? str_replace($r,'иму',$names) : $names;
$names = (mb_stristr($r,'кс')) ? str_replace($r,'ксу',$names) : $names;
$names = (mb_stristr($r,'от')) ? str_replace($r,'оту',$names) : $names;
$names = (mb_stristr($r,'ма')) ? str_replace($r,'ме',$names) : $names;
$names = (mb_stristr($r,'ев')) ? str_replace($r,'еву',$names) : $names;
$names = (mb_stristr($r,'ил')) ? str_replace($r,'илу',$names) : $names;
$names = mb_strtoupper(mb_substr($names,0,1)) . mb_substr($names,1); //делаем первую букву в Верхнем регистре
return $names; //возвращаем результат
}

0

Нет фото
bibilink * 19.01
• 23 апр 2014, 07:51


Klinskih, Да)

0

Нет фото
• 23 апр 2014, 07:47


по типу как вк, Ваше сообщения для Андрея(в анкете Андрей написано) это если Я правильно понял))

0

Нет фото
DeFF * 0.28
• 21 апр 2014, 23:44


сделать то можно, только не вспомню, как что склоняется.

0

Нет фото
bibilink * 19.01
• 21 апр 2014, 22:24


БугиМен, Ага)