Вход
Регистрация
PHP коды
| Склонение фамили и имени
function changename ($changename= 'ПупкинВасилий', $gender=1, $case=1){ //Разделяем данныенафамилию иимя $partname= explode('', $changename); //Еслипадежне именительный, начинаемработу if($case>1){ //Получаем фамилиюиимя $sn=$partname ['0']; $n=$partname ['1']; //Получаемдлину фамилиииимени (кол-во символов) $lsn=utf_strlen ($sn); $ln=utf_strlen ($n); //Получаемдлину фамилиииимени допредпоследней буквы(кол-во символов) $m1sn=$lsn-1; $m1n=$ln-1; $m2n=$ln-2; //Выводим последниесимволы (окончания)для дальнейшего сравненияс окончаниямив массиве $e1sn= utf_substr($sn, $m1sn,1); $e1n=utf_substr ($n,$m1n,1); $e2n=utf_substr ($n,$m2n,2); //Получаем фамилиюиимябез последних символов $n1esn= utf_substr($sn, 0,$m1sn); $n1en= utf_substr($n,0, $m1n); $n2en= utf_substr($n,0, $m2n); //Работас мужскойфамилией иименем if($gender==1) { //Массив окончаниймужских фамилий $mesn=array( '1'=>array ('о','х') ); //Замена окончанийфамилии взависимостиот падежа $snlc=($case== 2)?'а':($case ==3)?'у':''; //Замена окончанийфамилий взависимостиот падежа if(in_array ($e1sn,$mesn ['1'])){ $surname=$sn; }else{ $surname=$sn. $snlc; } //Массив окочаниймужских имен $men=array( '1'=>array ('ва','ма'), '2'=>array ('ек'), '3'=>array ('ел'), '4'=>array ('н','р','в', 'с','м','л', 'д'), '5'=>array ('й','ь'), '6'=>array ('я','а') ); //Работас заменойокончаний мужскихименв зависимостиот падежа if($name= in_array($e2n, $men['1'])){ $nlc=($case== 2)?'ы':($case ==3)?'е':''; $name=$n1en. $nlc; }elseif (in_array($e2n, $men['2'])){ $nlc=($case== 2)?'ька': ($case==3)? 'ьку':''; $name=$n2en. $nlc; }elseif(in_array ($e2n,$men ['3'])){ $nlc=($case== 2)?'ла': ($case==3)? 'лу':''; $name=$n2en. $nlc; }elseif(in_array ($e1n,$men ['4'])){ $nlc=($case== 2)?'а':($case ==3)?'у':''; $name=$n. $nlc; }elseif (in_array($e1n, $men['5'])){ $nlc=($case== 2)?'я':($case ==3)?'ю':''; $name=$n1en. $nlc; }elseif (in_array($e1n, $men['6'])){ $nlc=($case== 2)?'и':($case ==3)?'е':''; $name=$n1en. $nlc; }else{ $name=$n; } //Работас женскойфамилией иименем }elseif($gender ==2){ //Массив окончанийженских фамилий $wesn=array( '1'=>array ('о','х') ); //Замена окончанийфамилий взависимостиот падежа if(in_array ($e1sn,$wesn ['1'])){ $surname=$sn; }else{ $surname= $n1esn.'ой'; } //Массив окончанийженских имен $wen=array( '1'=>array ('ша','тя', 'ня','ка', 'ля'), '2'=>array ('ра','та', 'да','ма', 'на') ); //Работас заменойокончаний женскихименв зависимостиот падежа if($name= in_array($e2n, $wen['1'])){ $wlc=($case== 2)?'и':($case ==3)?'е':''; $name=$n1en. $wlc; }elseif (in_array($e2n, $wen['2'])){ $wlc=($case== 2)?'ы':($case ==3)?'е':''; $name=$n1en. $wlc; }else{ $name=$n; } //Есликакимто образомполне определенто ничегонеменяем }else{ $surname=$sn; $name=$n; } //Соединяем измененные фамилиюиимя $fullname= $surname.''. $name; //Еслипадеж именительныйто ничегоне изменяем }else{ $fullname= $changename; } // return$fullname; } Параметрыиих значения Первыйпараметр- фамилияиимяв именительном падеже(если правилонебудет соблюдено возможна некорректное склонение). Второй-пол пользователя, где: 1-мужской 2-женский Третий-падеж склонения,где: 1-именительный (кто,что) 2-родительный (кого,чего) 3-дательный (кому,чему) Вызываяфункциюи ПРАВИЛЬНОуказав всепараметрывы получитефамилию иимясклоненные повыбранному вамипадежу Вызовирезультат =changename ('ПупкинВася', 1,3)?>
Онлайн: 1
Реклама
Наш надёжный хостинг партнер
Купить рекламу