Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* ПРИШЛО ВРЕМЯ МОРФОЛОГИЧЕСКОГО АНАЛИЗА */
- function first_letter_smart($text){return $text;}
- // Имя
- function get_given_name($given_name, $case, $gender){
- $given_name=mb_strtolower($given_name);
- switch($case){
- case 1:return first_letter_smart($given_name);
- case 2:return first_letter_smart(get_given_name_2($given_name, $gender));
- case 3:return first_letter_smart(get_given_name_3($given_name, $gender));
- default: return '';
- }
- }
- // Отчество
- function get_father_name($father_name, $case, $gender){
- $father_name=mb_strtolower($father_name);
- switch($case){
- case 1:return first_letter_smart($father_name);
- case 2:return first_letter_smart(get_father_name_2($father_name, $gender));
- case 3:return first_letter_smart(get_father_name_3($father_name, $gender));
- default: return '';
- }
- }
- // Фамилия
- function get_second_name($second_name, $case, $gender){
- $second_name=mb_strtolower($second_name);
- switch($case){
- case 1:return first_letter_smart($second_name);
- case 2:return first_letter_smart(get_second_name_2($second_name, $gender));
- case 3:return first_letter_smart(get_second_name_3($second_name, $gender));
- default: return '';
- }
- }
- /* Более тонко */
- // Имя (род. падеж)
- function get_given_name_2($given_name, $gender){
- if ($gender==1){
- if (preg_match('_[цкнгшщзхфвпрлджчсмтб]$_ui', $given_name)){
- return $given_name.'а';
- }
- if (preg_match('_^([а-яё]+)й$_ui', $given_name, $a)){
- return $a[1].'я';
- }
- if (preg_match('_^([а-яё]+)я$_ui', $given_name, $a)){
- return $a[1].'и';
- }
- if (preg_match('_^([а-яё]+)([лнр])а$_ui', $given_name, $a)){
- return $a[1].$a[2].'ы';
- }
- if (preg_match('_^([а-яё]+)ль$_ui', $given_name, $a)){
- return $a[1].'ля';
- }
- }
- if ($gender==0){
- if (preg_match('_^([а-яё]+)я$_ui', $given_name, $a)){
- return $a[1].'и';
- }
- if (preg_match('_^([а-яё]+)([лнр])а$_ui', $given_name, $a)){
- return $a[1].$a[2].'ы';
- }
- if (preg_match('_^([а-яё]+)а$_ui', $given_name, $a)){
- return $a[1].'и';
- }
- return $given_name;
- }
- }
- // Отчество (род. падеж)
- function get_father_name_2($father_name, $gender){
- if ($gender==1){
- if (preg_match('_ич$_ui', $father_name, $a)){
- return $father_name.'а';
- }else{
- // -оглы
- return $father_name;
- }
- }
- if ($gender==0){
- if (preg_match('_^([а-яё]+)на$_ui', $father_name, $a)){
- return $a[1].'ны';
- }else{
- return $father_name;
- }
- }
- }
- // Фамилия (род. падеж)
- function get_second_name_2($second_name, $gender){
- if ($gender==1){
- if (preg_match('_[цкнгшщзхфвпрлджчсмтб]$_ui', $second_name)){
- return $second_name.'а';
- }
- if (preg_match('_о$_ui', $second_name)){
- return $second_name;
- }
- if (preg_match('_^([а-яё]+)[ыи]й$_ui', $second_name, $a)){
- return $a[1].'ого';
- }
- return $second_name;
- }
- if ($gender==0){
- if (preg_match('_[цкнгшщзхфвпрлджчсмтбо]$_ui', $second_name)){
- return $second_name;
- }
- if (preg_match('_^([а-яё]+)а$_ui', $second_name, $a)){
- return $a[1].'ой';
- }
- }
- }
- /* Дательный падеж */
- // Имя (дат. падеж)
- function get_given_name_3($given_name, $gender){
- if ($gender==1){
- if (preg_match('_[цкнгшщзхфвпрлджчсмтб]$_ui', $given_name)){
- return $given_name.'у';
- }
- if (preg_match('_^([а-яё]+)й$_ui', $given_name, $a)){
- return $a[1].'ю';
- }
- if (preg_match('_^([а-яё]+)я$_ui', $given_name, $a)){
- return $a[1].'е';
- }
- if (preg_match('_^([а-яё]+)([лнр])а$_ui', $given_name, $a)){
- return $a[1].$a[2].'е';
- }
- if (preg_match('_^([а-яё]+)ль$_ui', $given_name, $a)){
- return $a[1].'лю';
- }
- }
- if ($gender==0){
- if (preg_match('_^([а-яё]+)я$_ui', $given_name, $a)){
- return $a[1].'е';
- }
- if (preg_match('_^([а-яё]+)([лнр])а$_ui', $given_name, $a)){
- return $a[1].$a[2].'е';
- }
- if (preg_match('_^([а-яё]+)а$_ui', $given_name, $a)){
- return $a[1].'е';
- }
- return $given_name;
- }
- }
- // Отчество (дат. падеж)
- function get_father_name_3($father_name, $gender){
- if ($gender==1){
- if (preg_match('_ич$_ui', $father_name, $a)){
- return $father_name.'у';
- }else{
- // -оглы
- return $father_name;
- }
- }
- if ($gender==0){
- if (preg_match('_^([а-яё]+)на$_ui', $father_name, $a)){
- return $a[1].'не';
- }else{
- return $father_name;
- }
- }
- }
- // Фамилия (дат. падеж)
- function get_second_name_3($second_name, $gender){
- if ($gender==1){
- if (preg_match('_[цкнгшщзхфвпрлджчсмтб]$_ui', $second_name)){
- return $second_name.'у';
- }
- if (preg_match('_о$_ui', $second_name)){
- return $second_name;
- }
- if (preg_match('_^([а-яё]+)[ыи]й$_ui', $second_name, $a)){
- return $a[1].'ому';
- }
- return $second_name;
- }
- if ($gender==0){
- if (preg_match('_[цкнгшщзхфвпрлджчсмтбо]$_ui', $second_name)){
- return $second_name;
- }
- if (preg_match('_^([а-яё]+)а$_ui', $second_name, $a)){
- return $a[1].'ой';
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement