morpher.ru +7 (925) 336 9960
nowhere@morpher.ru
 
 
Мой Морфер

Модуль склонения по падежам для PHP

Модуль предназначен для склонения по падежам слов и словосочетаний – фамилий, имен и отчеств, названий городов и товаров – на русском и украинском языках.

Купить

Функция склонения по падежам

        
            Один миллион долларов достается
            <?php echo morpher_inflect('Пупкин Василий', 'dat');?>
             из 
            <?php echo morpher_inflect('Набережные Челны', 'rod');?>!
        
    

В результате получаем:

        
            Один миллион долларов достается Пупкину Василию из Набережных Челнов!
        
    

Функция morpher_inflect склоняет словосочетание в именительном падеже (первый аргумент) в любой падеж (второй аргумент). Падеж может принимать следующие значения:

Иилиimименительный падеж
Рилиrodродительный падеж
Дилиdatдательный падеж
Вилиvinвинительный падеж
Тилиtvorтворительный падеж
Пилиpredlпредложный падеж без предлога
П_оилиpredl-oпредложный падеж с предлогом о/об/обо
Милиgdeместный падеж (отвечает на вопрос где?)

Разрешение неоднозначностей

Есть слова, которые могут склоняться по-разному, например:

  • фамилия Резник склоняется у мужчин и не склоняется у женщин;
  • Ростов в творительном падеже будет Ростовым, если это фамилия, и Ростовом, если это город;
  • тестер в винительном падеже будет тестера, если это человек, и тестер, если имеется в виду прибор.

Для повышения качества склонения вы можете сообщить функции дополнительную информацию через третий аргумент. Этот аргумент является необязательным. Значением должна быть строка. Пример:

        
            <?php
            echo morpher_inflect("Ростов", "Т", "inanimate");  //"Ростовом"
            ?>
        
    

Поддерживаются следующие значения:

Значение Описание
Feminine Женский род
Masculine Мужской род
Animate Одушевлённое
Inanimate Неодушевлённое
Common Нарицательное
Name ФИО

Значение может быть записано в любом регистре. Допустимо комбинировать несколько значений через запятую:

        
            <?php
            echo morpher_inflect("Ростов", "Т", "Name,Masculine");  //"Ростовым"
            ?>
        
    

Значения Name и Common, Feminine и Masculine, Animate и Inanimate являются попарно взаимоисключающими. Если указать их одновременно, то функция вернет строку с текстом соответствующей ошибки:

#ERROR: Mutually exclusive flags specified: Name and Common.

#ERROR: Mutually exclusive flags specified: Masculine and Feminine.

#ERROR: Mutually exclusive flags specified: Animate and Inanimate.

Если в качестве значения третьего аргумента передать строку, содержащую некорректное значение, то функция вернет текстовую строку с ошибкой:

#ERROR: Parameter 3 'flags' is invalid.

Все строки, передаваемые в библиотеку, должны быть в кодировке UTF-8. Результат также возвращается в UTF-8.

Соответствующая функция для украинского языка называется morpher_ukr_inflect. Она работает пока только с фамилиями, именами и отчествами и отличается от русской названиями падежей:

Нилиnazименительный падеж (називний відмінок)
Рилиrodродительный падеж (родовий відмінок)
Дилиdavдательный падеж (давальний відмінок)
Зилиznaвинительный падеж (знахідний відмінок)
Оилиoruтворительный падеж (орудний відмінок)
Милиmisпредложный падеж (місцевий відмінок) без предлога
Килиklyзвательный падеж (кличний відмінок)

Перевод во множественное число в украинской версии пока не реализован.

Функция разбивки ФИО на составляющие

Функция morpher_split_fio разбивает входную строку на массив из фамилии, имя, отчества

        
            <?php 
            list($f,$i,$o) = morpher_split_fio("Пупкин Василий");
            echo "Ф: $f\n";
            echo "И: $i\n";
            echo "О: $o\n";?>
        
    
        
            Ф: Пупкин
            И: Василий
            О:
        
    

Функция перевода во множественное число

Если ко второму параметру добавить строку "mn", то результат будет во множественном числе:

        
            На складе осталось 238
            <?php echo morpher_inflect('кочерга', 'rod mn');?>.
        
    
        
             На складе осталось 238 кочерёг.
        
    

Если первый параметр уже во множественном числе, то будет выдано:

#ERROR: Parameter 1 'text' is plural.

Функция определения рода

        
            <?php 
            $endings = array (
            	"m" => "ый",
            	"f" => "ая",
            	"n" => "ое",
            	"p" => "ые"
            );
            
            $name = "знатоки";
            
            $rod = morpher_get_gender ($name);
            
            echo "Уважаем" . $endings [$rod] . " " . $name. "!\n";?>
        
    

Для определения рода фамилий, имен и отчеств на украинском языке служит функция morpher_ukr_get_gender. Она возвращает только "m" (мужской) или "f" (женский).

Функция morpher_get_gender также поддерживает дополнительный необязательный параметр, который служит для разрешения неоднозначностей. Допустимы те же значения, что и для функции morpher_inflect. Значения описаны выше.

В следующем примере функция будет рассматривать слово Карен как женское имя:

        
            <?php
            $gender = morpher_get_gender("Карен", "feminine")
            if ($gender === "m")
            {
                echo "Мужское имя.\n";
            }
            else
            {
                echo "Женское имя.\n";
            }	
            ?>
        
    

Функция прописи чисел и денежных сумм

Функция morpher_spell формирует пропись числа и ставит данную единицу измерения в нужный падеж:

        
            <?php 
            morpher_spell (28, "календарный день"); // 28 (Двадцать восемь) календарных дней
            morpher_spell ("1,2", "процент");       // 1,2 (Одна целая две десятых) процента
            morpher_spell (2, "сутки");             // 2 (Двое) суток
            ?>
        
    

Если пропись нужно вставить в текст в определенном падеже, укажите падеж третьим параметром:

        
            В течение <?php echo morpher_spell (28, "календарный день", "Р"); ?>.
        
    

В результате получим "В течение 28 (Двадцати восьми) календарных дней."

Допустимые значения падежей: И, Р, Д, В, Т, П и их аналоги, записанные латиницей, см. таблицу выше. Формы с предлогами (predl-o и gde) в этой функции не поддерживаются.

Для названий некоторых денежных единиц функция morpher_spell выдает пропись такого вида:

        
            <?php 
            morpher_spell (123.45, "рубль");      // Сто двадцать три рубля 45 копеек
            morpher_spell (123.45, "доллар США"); // Сто двадцать три доллара США 45 центов
            morpher_spell (123.45, "евро");       // Сто двадцать три евро 45 центов
            ?>
        
    

При желании можно использовать сокращенные наименования денежных единиц, с точкой или без:

        
            <?php 
            morpher_spell (123.45, "руб.");       // Сто двадцать три руб. 45 коп.
            morpher_spell (123.45, "долл. США");  // Сто двадцать три долл. США 45 центов
            morpher_spell (123.45, "грн.");       // Сто двадцать три грн. 45 коп.
            ?>
        
    

Или трехбуквенные коды валют международного стандарта ISO 4217, таких как RUB, USD, EUR и др. При этом в название денежной единицы автоматически включается название страны:

        
            <?php 
            morpher_spell (123.45, "RUB");  // Сто двадцать три российских рубля 45 копеек
            morpher_spell (123.45, "UAH");  // Сто двадцать три украинских гривны 45 копеек
            morpher_spell (123.45, "KZT");  // Сто двадцать три казахских тенге 45 тиынов
            ?>
        
    

Полный список обозначений валют

Функция прописи чисел в виде порядковых числительных

Функция morpher_spell_ordinal похожа на функцию morpher_spell, но возвращает пропись числа в форме порядкового числительного:

        
            <?php 
            morpher_spell_ordinal (38, "попугай");        // тридцать восьмой попугай
            ?>
        
    

Функция поддерживает опциональный третий параметр - падеж:

        
            <?php 
            morpher_spell_ordinal (38, "попугай", "Р");   // тридцать восьмого попугая
            ?>
        
    

Для этой функции допустимые значения падежей: И, Р, Д, В, Т, П и их аналоги, записанные латиницей, см. таблицу выше. Формы с предлогами (predl-o и gde) в этой функции не поддерживаются.

При указании некорректного или пустого значения в качестве одного из параметров функция вернет сообщение об ошибке. Список сообщений:

  • #ERROR: Parameter 1 'number' is invalid.
  • #ERROR: Parameter 1 'number' should not be empty.
  • #ERROR: Parameter 2 'unit' is invalid.
  • #ERROR: Parameter 2 'unit' should not be empty.
  • #ERROR: Parameter 3 'case' is invalid.
  • #ERROR: Parameter 3 'case' should not be empty.

Функция прописи дат

Функция morpher_spell_date возвращает пропись даты. Первый параметр принимает дату в виде экземпляра класса DateTime. Необязательный второй параметр задает падеж, при отсутствии параметра функция вернет пропись даты в именительном падеже.

        
            <?php
            $date = new DateTime("2015-11-01 00:00:00");
            morpher_spell_date ($date);      // первое ноября две тысячи пятнадцатого года
            morpher_spell_date ($date, "И"); // первое ноября две тысячи пятнадцатого года
            morpher_spell_date ($date, "Р"); // первого ноября две тысячи пятнадцатого года
            ?>
        
    

При указании значения, не являющегося экземпляром класса DateTime PHP выведет предупреждение о несоответствии типов, а функция вернет NULL. При указании некорректного значения падежа функция вернет сообщение об ошибке:

  • #ERROR: Parameter 2 'case' is invalid.
  • #ERROR: Parameter 2 'case' should not be empty.

Пользовательский словарь

Пользовательский словарь служит для коррекции склонения отдельных словосочетаний. Пользовательский словарь - это файл формата xml.

Чтобы подключить словарь к библиотеке, нужно использовать функцию:

        
            <?php 
            try {
                // Загружает пользовательский словарь
                // из файла userDict.xml
                morpher_load_user_dict ("userDict.xml");
            }
            catch (Exception $e) {
                echo "morpher_load_user_dict failed. \n", $e;    
            }
            ?>
        
    

Функция имеет один параметр – текстовую строку, которая указывает расположение xml-файла пользовательского словаря. Допустимо указывать имя файла, абсолютный путь

        
            <?php
            try {
                // Загружает пользовательский словарь
                // из файла C:\morpher\userDict.xml
                morpher_load_user_dict ("C:\\morpher\\userDict.xml");
            }
            catch (Exception $e) {
                echo "morpher_load_user_dict failed. \n", $e;    
            }
            ?>
        
    

или относительный по отношению к вызывающему процессу путь

        
            <?php
            try {
                // Загружает пользовательский словарь
                // из файла morpher\userDict.xml
                morpher_load_user_dict ("morpher\\userDict.xml");
            }
            catch (Exception $e) {
                echo "morpher_load_user_dict failed. \n", $e;    
            }
            ?>
        
    

Допускается загружать словарь только в одной из следующих кодировок: UTF-8, UTF-16 или UTF-32. Это требование действует как для Windows, так и для Linux.

При наличии ошибок функция возбуждает исключение (экземпляр класса Exception), которое содержит текстовое сообщение об ошибке. Сообщение об ошибке начинается с "#ERROR: " по аналогии с другими ошибками, а именно:

  • "#ERROR: File not found."
    при отсутствии файла с указанным именем или отсутствии прав на его чтение;
  • "#ERROR: Invalid XML."
    если указанный файл содержит некорректный xml (нет XML-заголовка, незакрытый тег и т.п.);
  • "#ERROR: Tag <И> not found. Entry #123"
    при отсутствии тега <И> для записи с указанным номером;
  • "#ERROR: Tag <singular> not found. Entry #123"
    при отсутствии тега <singular> для записи с указанным номером;
  • "#ERROR: Invalid gender. Entry #123"
    если атрибут gender тега entry для записи с указанным номером имеет недопустимое значение (допустимы только masculine, feminine, neuter, plural).

Функцию morpher_load_user_dict необходимо вызывать до вызова других функций модуля, которые могут обрабатывать слова или словосочетания, содержащиеся в пользовательском словаре. При повторном успешном вызове функции словарь будет загружен вместо ранее загруженного. При указании пустой строки загруженный ранее словарь будет выгружен:

        
            <?php 
            morpher_load_user_dict (""); // Выгружает словарь
            ?>
        
    

Обработка ошибок

При возникновении ошибки все функции библиотеки возвращают строку (функция morpher_load_user_dict возбуждает исключение), начинающуюся с "#ERROR: ".

#ERROR: Parameter 1 'text' should not be empty.
#ERROR: Parameter 2 'case' should not be empty.
#ERROR: Parameter 1 'text' is not Russian.
#ERROR: Parameter 2 'case' is invalid.
#ERROR: Parameter 1 'text' is plural.
#ERROR: Parameter 1 'number' is invalid.
#ERROR: Parameter 1 'number' should not be empty.
#ERROR: Parameter 2 'unit' is invalid.
#ERROR: Parameter 2 'unit' should not be empty.
#ERROR: Parameter 3 'case' is invalid.
#ERROR: Parameter 3 'case' should not be empty.
#ERROR: Parameter 3 'flags' is invalid.
#ERROR: Mutually exclusive flags specified: Name and Common.
#ERROR: Mutually exclusive flags specified: Animate and Inanimate.
#ERROR: Mutually exclusive flags specified: Masculine and Feminine.
#ERROR: File not found.
#ERROR: Invalid XML.
#ERROR: Tag <И> not found. Entry #123
#ERROR: Tag <singular> not found. Entry #123
#ERROR: Invalid gender. Entry #123

Если вы не хотите, чтобы пользователь увидел эти сообщения, проверяйте на наличие начальной подстроки "#ERROR: ".

Функция morpher_inflect ожидает 2 параметра, а morpher_get_gender – один. При вызове с неправильным количеством параметров интерпретатор PHP выдает предупреждение и продолжает выполнение программы.

Установка модуля на Linux

Если у вас еще не установлен PHP, установить его можно командами:

$ sudo apt update
$ sudo apt install php

Требования к системе

Модуль поставляется в виде предварительно скомпилированного файла morpher.so. Для каждой версии PHP поставляется отдельная версия morpher.so. Для корректной работы модуля вам необходимо убедиться в том, что в вашей Linux-системе установлена и работает библиотека GLIBC версии 2.12 или выше. Этому требованию удовлетворяет большинство современных популярных дистрибутивов Linux: Ubuntu 14 - 20, Debian 7 - 8, CentOS 7 - 8. Если вы уверены, что ваш дистрибутив основан не на GLIBC, а на какой-то другой библиотеке языка Си, то напишите нам перед покупкой модуля для уточнения вопросов совместимости.

После того, как вы скачаете morpher.so для вашей версии PHP, вам необходимо зарегистрировать morpher.so как расширение PHP. На этом установка завершена, и вы можете пользоваться функциональностью модуля.

Как проверить версию GLIBC?

Это можно сделать разными способами, универсального способа нет. Один из наиболее простых - это выполнить команду:

        
            ldd --version
        
    

Пример вывода команды, запущенной в Ubuntu 20:

$ ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 2.31

В данном примере 2.31 – это версия библиотеки GLIBC.

Другой способ предполагает вызов системной библиотеки libc.so как консольной программы. Для этого нужно найти расположение файла и исполнить его:

$ ls /lib/*/libc.so.*
/lib/x86_64-linux-gnu/libc.so.6
$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.2) stable release version 2.31.
Copyright (C) 2020 Free Software Foundation, Inc.

Также можно обратиться к документации вашего дистрибутива.

Регистрация модуля в качестве расширения PHP

Файл morpher.so необходимо поместить в каталог расширений PHP. Для начала нужно узнать расположение этого каталога:

        
            # php -i | grep extension_dir
            extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
        
    

В вашей системе каталог расширений может быть другой.

Если каталог расширений уже известен, то скопируем или перенесем файл morpher.so в этот каталог:

        
            # mv morpher.so /usr/lib/php5/20121212/
        
    

Далее необходимо добавить в файл php.ini строку:

        
            extension=morpher.so
        
    

Узнать расположение файла php.ini, который используется PHP по умолчанию, можно с помощью команды:

        
            # php -i | grep php.ini
        
    

Проверить работоспособность модуля можно, например, командами:

        
            php -r "echo morpher_inflect('Пупкин Василий', 'dat');"
            php -r 'echo "Сегодня " . morpher_spell_date(new DateTime()) . "\n";'
        
    

Установка модуля на Windows

Модуль для Windows поставляется в виде DLL. Для каждой версии PHP поставляется отдельная версия DLL. Все DLL делятся на две версии: TS и NTS (thread-safe & non-thread-safe). Какую версию выбрать? OpenServer использует TS версии PHP для всех конфигураций. В иных случаях:

  • Apache + LoadModule: TS версия
  • Apache + FastCGI: NTS версия
  • IIS: TS версия
  • IIS + FastCGI: NTS версия
  • Nginx (OpenServer): TS версия

Еще один способ узнать, какая версия вам нужна, — открыть папку с PHP и найти один из файлов: если найдете php5ts.dll это TS версия, php5.dll — NTS версия.

Установка на OpenServer

  • Открываем директорию с openserver
  • Переходим в \modules\php\PHP-{версия}*\ext
  • Распаковываем .dll в эту директорию
  • Открываем php.ini
    php.ini
  • Добавляем строку extension=morpher_php_{версия}*.dll
  • Перезапускаем OpenServer
  • Введите команды:
                    
                        chcp 1251
                        php -r "echo morpher_inflect('морфер','dat');"
                    
                
    cmd

* {версия} - заменить на версию из названия .dll

Различие с Linux модулем

Единственным различием Windows и Linux версий является кодировка. В Linux модуль использует UTF-8, в Windows — Win-1251.

Ввод из PHP как правило происходит в UTF-8, поэтому для кроссплатформенного решения вы можете использовать подобный код:

        
            if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
                echo iconv('windows-1251', 'utf-8', 
                    morpher_inflect(iconv('utf-8', 'windows-1251', 'морфер'), 'dat');
            } else {
                echo morpher_inflect('морфер', 'dat'); 
            }
        
    

Технические характеристики

Модуль имеет версии для Linux и Windows. MacOS пока не поддерживается.

Поддерживаемые версии PHP: 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2.

Поддерживаемые архитектуры процессора: x86, x64, ARM64 (под Linux).

Зависимости

Для работы Linux-версии модуля необходимо, чтобы в системе была установленна библиотека GLIBC версии 2.12 или выше. Работа модуля в системах без GLIBC возможна в большинстве случаев, однако перед покупкой рекомендуется уточнить техническую возможность работы модуля в вашей системе.

Для работы в Alpine Linux нужен пакет libc6-compat.

Модуль не требует для своей работы подключения к Интернету и не передает никакие данные в Интернет.

Возможные проблемы и пути их устранения

Проблема «free(): invalid pointer»

Симптом: при запуске интерпретатор PHP завершается с ошибкой:

        
            free(): invalid pointer
            Aborted (core dumped)
        
    

Проблема возникла в Ubuntu 18.04 (Bionic), PHP 7.4.11, morpher.so 1.4.5.

Эта проблема решается удалением расширения php-intl или изменением порядка загрузки расширений: сначала должен загружаться morpher.so, а затем php-intl.

Проблема устранена в версии 1.4.8 morpher.so.

История изменений

Дата Версия  
15.07.2024 1.4.15
  • Исправлено склонение названия «Марьина Роща» и армянского женского имени Аревик.
  • Пополнение словаря odict.ru.
11.06.2024 1.4.14
  • Добавлена поддержка PHP 8.3 под Linux (x86 и amd64).
  • Пополнены словари, в основном odict.ru.
28.03.2024 1.4.13
  • Добавлена поддержка PHP 8.3 под Windows.
  • Исправлено склонение фраз с несколькими закавыченными словами: Исполнительный Вице-Президент – управляющий по Южному региону – управляющий Филиалом Банка "Южный" – управляющий Филиалом Банка «Северо-Кавказский»
03.12.2023 1.4.12 Добавлена поддержка платформы ARM64 под Linux.
02.06.2023 1.4.11
  • Исправлено склонение фамилии Бова.
  • Исправлено склонение фразы "Пашкевич С." с указанием женского рода (Flags="Feminine").
  • Добавлена поддержка PHP 8.2.
18.04.2023 1.4.10
  • Исправлено склонение:
    • фамилии Курячий
    • фраз с наречиями ("технически перевооружаемый")
    • слова "актуатор"
    • фраз ПРЕДСЕДАТЕЛЬ СОВЕТА ДЕПУТАТОВ, МИНИСТР ФИНАНСОВ ПЕРМСКОГО КРАЯ, СПЕЦИАЛИСТ ТЕХНИЧЕСКОЙ ПОДДЕРЖКИ
    • фраз "ул. Ленина", "ул. Пушкина" (с сокращением)
  • В сочетании «во многом» предлог во, а не в (например, при склонении слова «многое»).
  • Несклонение предлогов НА и ДЛЯ (раньше они иногда склонялись - для как тля).
08.02.2022 1.4.9
  • Добавлена поддержка PHP 8.1.
  • Добавлено 385 новых слов из словаря odict.ru и 13855 из Викисловаря.
  • Исправлено склонение «Главный конструктор турбомашин», «ИСПОЛНЯЮЩИЙ ОБЯЗАННОСТИ ДИРЕКТОРА» (большими буквами).
  • Слова перевал, застава, месторождение и др. теперь получают предлог «на» в местном падеже.
  • В функции склонения на украинском отменено чередование і-о (і-е) в фамилиях на -ів: Федорів, Бердичів и т.п.
  • В украинский словарь добавлены фамилии Євтушок, Калина и др.
13.09.2021 1.4.8
  • Исправлена ошибка free(): invalid pointer, возникавшая из-за конфликта с php-intl и другими расширениями.
  • Исправлено склонение Дніпро на украинском языке.
  • Добавлено 54 новых слова из словаря odict.ru.
21.07.2021 1.4.7
  • Добавлено еще более 50 тысяч слов из Викисловаря.
  • Исправлено склонение названий с числительными типа «1-я Фрунзенская улица».
  • Склонение топонима Красный Боец.
  • Склонение имен вида Аслан-бек, Джалил-бек.
09.06.2021 1.4.6
  • 57 новых слов в словаре.
08.04.2021 1.4.5
  • 15 новых слов в словаре.
  • Орёл теперь склоняется как неодушевленное (название города).
22.02.2021 1.4.4
  • Добавлена поддержка PHP 8.0.
  • 18 новых слов в словаре.
  • Функция morpher_spell теперь считает единицы измерения нарицательными.
  • Исправлено склонение Шугыла Нурсабикызы и подобных (где -кызы пишется слитно).
  • Исправлено склонение Илон Маск.
20.01.2021 1.4.3
  • Добавлено 752 фамилии из Википедии.
  • Добавлено 25 тысяч слов из русского Викисловаря.
  • Улучшено склонение несловарных ФИО, а также фамилий с дефисом (Тер-Оганесян, Кул-Мухаммед)
  • Функция склонения больше не заменяет латинские буквы на русские.
  • Исправлено склонение контакт-центр.
  • Исправлено склонение смартфон samsung galaxy j3 sm-j330f ds черный.
  • Исправлено склонение Смартфон Apple iPhone 11 Pro Max 256GB Midnight Green (MWHM2RU/A).
  • Исправлено склонение фамилии Краснящих в украинской функции.
  • Добавлено имя Рамін в украинский словарь.
04.12.2020 1.4.2
  • Добавлено более 14600 новых слов (новое издание словаря Зализняка + пополнение словаря odict.ru).
  • Исправлено склонение нестандартной фамилии Василив.
  • Исправлено склонение нестандартного топонима Уторгош, который склоняется и по мужскому, и по женскому типу: Малая Уторгош и Малый Уторгош.
  • Исправлено склонение имен Регіна, Альвіна, Фаїна в украинской версии.
  • Упрощена процедура установки: модуль для Linux теперь поставляется исключительно в виде скомпилированных библиотек morpher.so. Нет необходимости собирать модуль из исходного кода при установке.
  • Функция php_info теперь возвращает корректную версию модуля вместо 1.0.0.
  • Добавлена поддержка PHP 7.4 в Windows-версии модуля.
16.06.2020 1.4.1
  • Исправлено склонение ряда женских имен Ближнего Востока: Алмаз, Анушик, Алтнат и др.
  • Исправлено склонение фамилий на -КО и других.
  • Теперь не склоняются слова в кавычках: Сторожевой корабль «Сметливый».
  • Исправлена ошибка в функции morpher_spell, возникавшая при прописи числа 500 триллионов.
  • Добавлено 65 новых слов.
02.03.2020 1.4.0 Добавлена функция morpher_load_user_dict и поддержка пользовательского словаря. Добавлена функция прописи чисел в виде порядковых числительных morpher_spell_ordinal и функция прописи дат morpher_spell_date. Добавлена поддержка флагов склонений в функциях morpher_inflect и morpher_get_gender. Добавлена поддержка версий PHP 7.3 - 7.4. Исправлено склонение словосочетаний "Вр. и. о. начальника", "врио начальника" и подобных. Обновлены словари исключений для русского и украинского языка.
16.09.2019 1.3.0 Добавлено более 150 новых слов. Функция morpher_split_fio теперь учитывает инициалы и выдает их в виде частей ФИО. Теперь правильно склоняется "Заместитель Председателя Правления". Исправлена обработка некоторых собственных имен, содержащих букву ё. Для популярных дистрибутивов Linux модуль теперь поставляется в собранном виде (morpher.so). Исправлена сборка модуля для FreeBSD 11.
10.09.2018 1.2.12 Добавлено 63 новых слова. Слово "Армавир" теперь по умолчанию склоняется как название города, а не как мужское имя.
10.05.2018 1.2.11 Исправлено ошибочное склонение наречий отдельно, слегка, почти, совершенно. Исправлено склонение узбекской денежной единицы тийин.
15.01.2018 1.2.10 Пополнение словаря (60 слов). Автоматическая сборка под Windows для PHP 5.2-7.2. Исправлена ошибка чаек - чайком (было чаьйком) и подобные (буек, Бабуек).
15.09.2017 1.2.9 Исправлена сборка на GCC 4.7.X.
29.06.2017 1.2.8 Исправлено склонение с сокращением: ООО "Рога и Копыта".
7.06.2017 1.2.7 Добавлена функция morpher_split_fio.
17.01.2017 1.2.4 В функции morpher_spell исправлена ошибка «ноль годов». Добавлены копейки к белорусскому рублю в связи с его деноминацией. Старый (до июня 2016 г.) белорусский рубль имеет обозначение BYR, новый — BYN. Пропись BYR не содержит копеек, а BYN содержит.
13.01.2017 1.2.3 Исправлено склонение некоторых слов с дефисом, например: Нью-Йорк, Лос-Анджелес. Ранее неправильно выдавался винительный падеж: Нью-Йорка, Лос-Анджелеса вместо правильных Нью-Йорк, Лос-Анджелес.
9.09.2016 1.2.2 Внутреннее имя модуля morpher.so изменено с hello на morpher. "Неправильное" имя никак не сказывалось на работоспособности модуля, просто приводило к путанице, т.к. в выводе команды php -m модуль фигурировал как hello. Теперь выдается morpher.
7.09.2016 1.2.1 Исправлена ошибка компиляции, проявлявшаяся на некоторых версиях gcc. Ошибка была внесена в предыдущей версии.
2.09.2016 1.2.0 Добавлены функции склонения и определения рода для украинского языка.
30.08.2016 1.1.0
  • Добавлена функция прописи чисел и денежных сумм.
  • Исправлены ошибки, внесенные в предыдущей версии:
    • для параметра "падеж", равного predl-o, выдавалась форма без предлога, как для predl;
    • для параметра "падеж", равного im, выдавалась форма родительного падежа, как для rod.
07.08.2016 1.0.10 Добавлена функция перевода из единственного числа во множественное.
25.04.2016 1.0.9 Поддержка PHP 7.
24.04.2016 1.0.8 Улучшена совмесимость с ОС CentOS.
9.11.2014 1.0.4 Процедура установки изменена таким образом, что модуль теперь настраивается на вашу версию PHP во время установки. В предыдущих версиях под каждую версию PHP (5.3, 5.4, 5.5...) поставлялась отдельная версия модуля.
20.06.2014 1.0.3 Исправлен дефект, при котором функции morpher_inflect и morpher_get_gender могли выдавать #ERROR: Parameter 1 'text' is not Russian. при корректных входных данных, если в веб-сервере установлена нестандартная локаль. Теперь работа этих функций не зависит от выбранной локали.
10.06.2014 1.0.2 Исправлен дефект, при котором функция morpher_inflect могла выдавать #ERROR: Parameter 1 'text' is not Russian. при корректных входных данных, при этом поведение функции могло меняться от запуска к запуску.
29.05.2014 1.0.1 Функция sklon переименована в morpher_inflect. Добавлена функция morpher_get_gender.

Купить модуль morpher для PHP

«Стартап» «Компания» «Корпорация»
Срок лицензии Не ограничен 5 лет Не ограничен
Поддержка,1 гарантия 2 и обновления 3 1 год 5 лет в течение всего срока лицензии
Количество платформ 4 1 2 Не ограничено
Заключение договора, пересылка по почте Да Да
Цена 29 900 р.
разово
155 000 р.
разово
49 000 р.
в год
Купить Заказать Заказать

Возврат предоставляется в случае несоответствия продукта описанию на данной странице.

Примечания:

  1. Поддержка включает в себя консультации по использованию модуля по телефону и электронной почте. Наши контакты.
  2. Гарантия работоспособности и отсутствия дефектов. Если вы обнаружите в модуле дефекты, такие как зависание, аварийное завершение работы или несоответствие документации, мы обязуемся устранить эти дефекты. Неправильное склонение или определение рода не признается дефектом.
  3. Обновления. При выходе новой версии вы сможете скачать ее бесплатно по той же самой ссылке (ссылка будет выслана вам в письме).
  4. Под платформой понимается ОС + минорная версия PHP. Например, PHP 7.3 под Linux - это одна платформа, а PHP 7.4 под Linux - это другая платформа.

Процесс покупки лицензии «Стартап» займет всего несколько минут.



 

Библиотеки

© Сергей Слепов, 2003 - 2024.