Склонение имён на PHP


Склонение имён на 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); // Выводим массив ?> Как видите, использовать библиотеку очень просто. С другой стороны, мой главный совет будет следующий: по-возможности вообще избегайте необходимости склонять слова. Всё равно будут иногда вводить люди то, что склоняться никак не может, и попытки склонения будут выглядеть нелепо. Ведь необязательно писать "Добавить в друзья Илью", можно же ведь написано просто "Добавить в друзья" на странице Ильи.