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

Тема в разделе "PHP", создана пользователем bumer3, 1 май 2011.

Модераторы: latteo
  1. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Выложил первую версию библиотеки NameCaseLib Перейти по ссылке, для склонения по падежам Фамилии Имя и Отчества.
    Вопрос: Есть ли потребность продолжать разработку библиотеки. Нужно ли писать документацию. Нужна ли аналогичная библиотека для украинского языка.
     
    a_n_d_y и Cobol нравится это.
  2. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    147
    Симпатии:
    110
    Одобряю), думаю что скрипт будет полезен многим, и как украинец считаю что такой склонятор для украинского языка просто необходим, ибо очень мало существует подобных разработок с поддержкой украинского=( Если есть время и желание - продолжай в том же духе=) Вот парочка замечаний, хотелось бы иметь возможность короткой записи с возвращением всех возможных падежей в виде массива, тоесть отправил И или ИО или ФИО одним параметром - в ответ массив в котором ключ - вид падежа и д.т., а еще лучше сразу JSON строку(опционально).
     
  3. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Хочу написать еще детектор, которые определяет где имя, где фамилия, где отчество и сразу пол, тогда будет одни параметром и все ок...
     
  4. docus000

    docus000 Создатель

    Регистр.:
    28 окт 2007
    Сообщения:
    11
    Симпатии:
    0
    кстати детектор определяющий где фамилия где имя и где отчество был бы неплох)
    очень часто юзверя в интерфейсах тупят
    только тут бы уже было интересно на 3х языках (укр, рус, англ)
     
  5. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Определение имени и фамилии, я уже начал висать. Для английского подумаю как можна сделать...
     
  6. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Написал функции определения пола и функции поиска ФИО в строке.
    Теперь работает так:
    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] => Рижикове Тарасе Геннадиевиче
    )
     
    Mr.Emm нравится это.
  7. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Добавил поддержку украинского языка. Работает так же, как и русский язык:
    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:
    Перейти по ссылке
     
    tymchynskyi нравится это.