Склонение имён на PHP
Частенько возникает необходимость склонять имена на PHP. Согласитесь, что фраза "Добавить в друзья Илья" звучит намного хуже, чем "Добавить в друзья Илью". Поэтому склонение имён по падежам в PHP требуется достаточно часто, и в этой статье я расскажу, как это можно реализовать у себя на сайте.
Сразу скажу, что идеального варианта, увы, нет. Первый вариант весьма очевидный: найти базу имён, которые будут во всех падежах, и добавить к себе эту таблицу. Затем по имени в именительном падеже искать соответствующий падеж по базе. Минусы тут очевидны: огромная база, всех имён не охватите, лишняя нагрузка на сервер.
Второй вариант - написать свой класс склонений имён на PHP, либо воспользоваться уже готовым. Поскольку правила в русском языке достаточно сложные, плюс есть масса исключений, поэтому и библиотека потребуется очень большая, да и даже она далеко не 100% спасение. Наиболее популярная из всех библиотек, занимающихся склонением имён на PHP, является NameCaseLib.
Скачав эту библиотеку и поместив на свой сайт, её можно использовать вот так:
<php
require_once "NCL.NameCase.ru.php"; // Подключаем русскую библиотеку
$case = new NCLNameCaseRu(); // Создаём объект класса NCLNameCaseRu
$array = $case->q("Русаков Михаил Юрьевич"); // Получаем массив из 6-ти элементов соответствующих 6-ти падежам, в которых окажется входная строка
print_r($array); // Выводим массив
?>
Как видите, использовать библиотеку очень просто. С другой стороны, мой главный совет будет следующий: по-возможности вообще избегайте необходимости склонять слова. Всё равно будут иногда вводить люди то, что склоняться никак не может, и попытки склонения будут выглядеть нелепо. Ведь необязательно писать "Добавить в друзья Илью", можно же ведь написано просто "Добавить в друзья" на странице Ильи.
-
- Михаил Русаков
Комментарии (1):
Выдаёт пустой массив, то есть, как пустой, входная строка в нём не отображается. Сначала он на путь ругался, одно звено добавил, теперь с ним порядок. Версия библиотеки 0.4. Что ещё можно сделать?
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.