Вход Регистрация
* Dj_Dance

Склонение "имя фамилия" в дательный падеж

  1. function DativeCase($data, $sex) {
  2. $data = explode(' ', $data);
  3. $FirstName = trim($data[0]);
  4. $SecondName = trim($data[1]);
  5.  
  6. if (!empty($FirstName) && !empty($SecondName)) {
  7. # Получаем пол человека:
  8. if ($sex == 2) {
  9. # Склонение фамилии мужчины:
  10. switch (mb_substr($FirstName, -2)) {
  11. case 'ха':
  12. $FirstName = mb_substr($FirstName, 0, -2).'хи';
  13. break;
  14.  
  15. default:
  16. switch (mb_substr($FirstName, -1)) {
  17. case 'е': case 'о': case 'и': case 'я': case 'а':
  18. break;
  19.  
  20. case 'й':
  21. $FirstName = mb_substr($FirstName, 0, -2).'ому';
  22. break;
  23.  
  24. case 'ь':
  25. $FirstName = mb_substr($FirstName, 0, -1).'ю';
  26. break;
  27.  
  28. default:
  29. $FirstName = $FirstName.'у';
  30. break;
  31. }
  32. break;
  33. }
  34.  
  35. # Склонение мужского имени:
  36. switch (mb_substr($SecondName, -1)) {
  37. case 'л':
  38. $SecondName = mb_substr($SecondName, 0, -2).'лу';
  39. break;
  40.  
  41. case 'а': case 'я':
  42. If (substr($SecondName, -2, 1) == 'и') {
  43. $SecondName = mb_substr($SecondName, 0, -1).'и';
  44. } else {
  45. $SecondName = mb_substr($SecondName, 0, -1).'е';
  46. }
  47. break;
  48.  
  49. case 'й': case 'ь':
  50. $SecondName = mb_substr($SecondName, 0, -1).'ю';
  51. break;
  52.  
  53. default:
  54. $SecondName = $SecondName.'у';
  55. break;
  56. }
  57.  
  58. } else {
  59. # Склоенение женской фамилии
  60. switch (mb_substr($FirstName, -1)) {
  61. case 'о': case 'и': case 'б': case 'в': case 'г':
  62. case 'д': case 'ж': case 'з': case 'к': case 'л':
  63. case 'м': case 'н': case 'п': case 'р': case 'с':
  64. case 'т': case 'ф': case 'х': case 'ц': case 'ч':
  65. case 'ш': case 'щ': case 'ь':
  66. break;
  67.  
  68. case 'я':
  69. $FirstName = mb_substr($FirstName, 0, -2).'ой';
  70.  
  71. default:
  72. $FirstName = mb_substr($FirstName, 0, -1).'ой';
  73. break;
  74. }
  75. # Склонение женского имени:
  76. switch (mb_substr($SecondName, -1)) {
  77. case 'а': case 'я':
  78. If (substr($SecondName, -2, 1) == 'и') {
  79. $SecondName = mb_substr($SecondName, 0, -1).'и';
  80. } else {
  81. $SecondName = mb_substr($SecondName, 0, -1).'ой';
  82. }
  83. break;
  84.  
  85. case 'ь':
  86. $SecondName = mb_substr($SecondName, 0, -1).'и';
  87. break;
  88. }
  89.  
  90.  
  91. }
  92.  
  93. return "$FirstName $SecondName";
  94. }
  95. }
» Описание: Из "Сергей Пауков" в "Сергеем Пауковым"
» Время добавления: 11 Янв 2015 в 20:05
» Посмотров: 1489
» textarea
» Рейтинг: [+1 | -0]
Комментарии [0]
Онлайн: 0
Реклама