Склонение ФИО на PHP

bumer3

Постоялец
Регистрация
10 Янв 2008
Сообщения
291
Реакции
155
Выложил первую версию библиотеки NameCaseLib , для склонения по падежам Фамилии Имя и Отчества.
Вопрос: Есть ли потребность продолжать разработку библиотеки. Нужно ли писать документацию. Нужна ли аналогичная библиотека для украинского языка.
 
Одобряю), думаю что скрипт будет полезен многим, и как украинец считаю что такой склонятор для украинского языка просто необходим, ибо очень мало существует подобных разработок с поддержкой украинского=( Если есть время и желание - продолжай в том же духе=) Вот парочка замечаний, хотелось бы иметь возможность короткой записи с возвращением всех возможных падежей в виде массива, тоесть отправил И или ИО или ФИО одним параметром - в ответ массив в котором ключ - вид падежа и д.т., а еще лучше сразу JSON строку(опционально).
 
Хочу написать еще детектор, которые определяет где имя, где фамилия, где отчество и сразу пол, тогда будет одни параметром и все ок...
 
кстати детектор определяющий где фамилия где имя и где отчество был бы неплох)
очень часто юзверя в интерфейсах тупят
только тут бы уже было интересно на 3х языках (укр, рус, англ)
 
Определение имени и фамилии, я уже начал висать. Для английского подумаю как можна сделать...
 
Написал функции определения пола и функции поиска ФИО в строке.
Теперь работает так:
PHP:
echo 'Отчет, ' .
 $nc->q("Афонин Николай Сергеевич", NCLNameCaseRu::$RODITLN)
 . ' о проделаной работе вместе с его сыном ' .
 $nc->q("Афонин Никита", NCLNameCaseRu::$TVORITELN) .
 ' на осенних каникулах. Задание держалось на ' .
 $nc->q("Маргаритта Николаевна", NCLNameCaseRu::$PREDLOGN) .
 '; Поздравляем всех предчастных, в том числе и ' .
 $nc->q("Кардонский Серафим Ильич", NCLNameCaseRu::$VINITELN) . ' и ' .
 $nc->q("Лобудская София Викторовна", NCLNameCaseRu::$VINITELN) .
 '. Хотим передать поздравление также ' .
 $nc->q("Игнатьев Павел Викторович", NCLNameCaseRu::$DATELN) . ' и ' .
 $nc->q("Сумарский Лев", NCLNameCaseRu::$DATELN);
Выдает:
PHP:
Отчет, Афонина Николая Сергеевича о проделаной работе вместе с его сыном Афониным Никитой на осенних каникулах. Задание держалось на Маргаритте Николаевне; Поздравляем всех предчастных, в том числе и Кардонского Серафима Ильича и Лобудскую Софию Викторовну. Хотим передать поздравление также Игнатьеву Павлу Викторовичу и Сумарскому Льву
Если не указать падеж то выдаст массив, где будут склонения во все падежи.
PHP:
print_r($nc->q("Рижиков Тарас Геннадиевич"));
Выдает:
PHP:
Array
(
    [0] => Рижиков Тарас Геннадиевич
    [1] => Рижикова Тараса Геннадиевича
    [2] => Рижикову Тарасу Геннадиевичу
    [3] => Рижикова Тараса Геннадиевича
    [4] => Рижиковым Тарасом Геннадиевичем
    [5] => Рижикове Тарасе Геннадиевиче
)
 
Добавил поддержку украинского языка. Работает так же, как и русский язык:
PHP:
<?php
header('Content-type: text/html; charset=utf-8');
require '../Library/NCL.NameCase.ua.php';
$nc = new NCLNameCaseUa();
echo 'Звіт, ' .
 $nc->q("Афонін Микола Сергійович", NCL::$RODITLN)
 . ' про виконану роботу разом з його сином ' .
 $nc->q("Афонін Микита", NCL::$TVORITELN) .
 ' на осінніх канікулах. Завдання трималося на ' .
 $nc->q("Маргарита Миколаївна", NCL::$PREDLOGN) .
 '; Вітаємо всіх, а також ' .
 $nc->q("Розумвський Андрій Миколайович", NCL::$VINITELN) . ' та ' .
 $nc->q("Лобудска Софія Вікторівна", NCL::$VINITELN) .
 '. Хочемо передати вітання ' .
 $nc->q("Воробей Хорив Іларіонович", NCL::$DATELN) . ' і ' .
 $nc->q("Мазепа Лев", NCL::$UaDavalnyi) . '. ' .
 $nc->q("Афродіта Іллівна", NCL::$UaKlychnyi) . ', триматесь!';
Результат:
Звіт, Афоніна Миколи Сергійовича про виконану роботу разом з його сином Афоніном Микитою на осінніх канікулах. Завдання трималося на Маргариті Миколаївні; Вітаємо всіх, а також Розумвського Андрія Миколайовича та Лобудску Софію Вікторівну. Хочемо передати вітання Вороб’єві Хоривові Іларіоновичу і Мазепі Левові. Афродіто Іллівно, триматесь!
Смотреть на GitHub:
 
Назад
Сверху