Меню Рубрики

Php склонение слов по падежам

Склонение слов по падежам на php

У Яндекса есть очень удобный api сервис, который может трансформировать любое слово, или даже несколько слов, во все падежи. Воспользоваться сервисом очень просто, достаточно сделать запрос по адресу export.yandex.ru/inflect.xml?name=СЛОВО — в ответ будет получен xml со всеми склонениями слова.
Ниже я привел функцию, которая работает с api Яндекса и возвращает нужную форму слова.

Код функции:

И пример использования функции:

Склонение слов по падежам на php: 7 комментариев

За это огромное спасибо, работает на 5+!

А есть то же самое — но для глаголов?

Автор, подобные примеры надо смывать в унитаз! Сам то думал, что за пример показал и новички его ведь будут использовать?

У тебя скрипт делает 6 (ШЕСТЬ) запросов к серверу яндекса, при этом каждый раз яндекс отдаст ВСЕ падежи… представь сколько времени будет генерироваться страница?
Возвращать нужно одним массивом из функции и уже в основном скрипте брать с массива нужное.
Вот не менее функциональный вариант, но с 1 запросом и 1 проходом цикла в отличии от твоих шести.

function getNewFormText($text) <
$urlXml = «http://export.yandex.ru/inflect.xml?name=».urlencode($text);
$result = @simplexml_load_file($urlXml);
if($result) <
$arrData = array();
foreach ($result->inflection as $one) <
$arrData[] = (string) $one;
>
return $arrData;
>
return false;
>

——
// Основной скрипт. Видим что запрос к функции только один
// Здесь было бы разумно сделать проверку на размер массива «$text», вдруг яндекс ничего не вернул, тогда код ниже вызовет нотайсы и соответственно ничего не будет склонять
if(($text = getNewFormText($text)) !== false)
<
echo «Именительный падеж : » . $text[0]. «»;
echo «Родительный падеж : » . $text[1] . «»;
echo «Дательный падеж : » . $text[2]. «»;
echo «Винительный падеж : » .$text[3] . «»;
echo «Творительный падеж : » .$text[4]. «»;
echo «Предложный падеж : » . $text[5]. «»;
>

надо было ссылку дать на описание их API , спасибо так-то.. =) не знал

Источник статьи: http://vk-book.ru/sklonenie-slov-po-padezham-na-php/

Php склонение слов по падежам

Склонение падежей русских имён, фамилий и отчеств

Join GitHub today

GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Склонение падежей русских имён, фамилий и отчеств.

Портированная версия с Ruby на PHP

Для работы требуется PHP >= 5.3

Загрузите файлы в папку с библиотеками на сервере.

если вы хотите использовать petrovich как submodule,

или просто скачайте исходный код со страницы проекта на Github.

В библиотеку входит класс Petrovich и trait Trait_Petrovich

Trait содержит в себе

Названия суффиксов для методов образованы от английских названий соответствующих падежей. Полный список поддерживаемых падежей приведён в таблице ниже.

Суффикс метода Падеж Характеризующий вопрос
CASE_NOMENATIVE именительный Кто? Что?
CASE_GENITIVE родительный Кого? Чего?
CASE_DATIVE дательный Кому? Чему?
CASE_ACCUSATIVE винительный Кого? Что?
CASE_INSTRUMENTAL творительный Кем? Чем?
CASE_PREPOSITIONAL предложный О ком? О чём?

Метод Petrovich::detectGender возвращает пол, на основе отчества. Возвращаемое значение не зависит от пола, переданного в конструктор. Для полов определены следующие константы

  • GENDER_ANDROGYNOUS — пол не определен;
  • GENDER_MALE — мужской пол;
  • GENDER_FEMALE — женский пол.

About

Склонение падежей русских имён, фамилий и отчеств

Источник статьи: http://github.com/petrovich/petrovich-php

Склонение слов на PHP

Весьма популярной проблемой, с которой сталкиваются Web-программисты, это склонение слов на PHP. Например, нужно вывести, сколько минут назад была оставлено какое-нибудь сообщение. Можно написать просто число и слово «минут«. Но тогда будет написано весьма странно, например, «1 минут«, «2 минут» и так далее. Фактически, без склонения слов на PHP Вам не обойтись, если, конечно, Вы хотите писать по-русски.

Проблема новичкам покажется очень сложной, но, на самом деле, у склонения слов есть определённая закономерность. Посмотрите сами: «1 минута, 2 минуты, 5 минут, 11 минут, 19 минут, 21 минута, 22 минуты, 25 минут и так далее«. Видите закономерность? 1, 21, 31, 41 — всегда будет «минута«. Если младший разряд больше 1-го и меньше 5, при этом само число при делении на 100 имеет остаток больше 20 (то есть, например, не число 12 и не 112), то будут «минуты«. В остальных случаях «минут«.

А вот дальше уже начинается построение алгоритма, поскольку закономерность очевидно имеется. Я приведу Вам, на мой взгляд, самый красивый алгоритм. Он наиболее короткий, и в то же время очень быстрый.

Запустив данный скрипт Вы увидите, что склонение слов на PHP происходит на ура. Могу лишь добавить, что помимо «минут» там может быть «день«, «час«, «человек«, «компьютер» и все другие существительные, которые склоняются в зависимости от числительного.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 9 ):

    Спасибо Михаил за скрипт как раз в тему, давно хотел создать такой скрипт да руки не доходили. Побольше бы таких продуктивных уроков. А так ты молодец!

    Как оказывается просто! Я пошел длинной дорогой. if(($age===1)||($age===2)||. )

    Михаилу это легко делать потому что он умный, и знает математику, я не знаю математику и мне написать такое никогда не удастся

    Источник статьи: http://myrusakov.ru/php-sklonenie-slov.html

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

    Частенько возникает необходимость склонять имена на PHP. Согласитесь, что фраза «Добавить в друзья Илья» звучит намного хуже, чем «Добавить в друзья Илью«. Поэтому склонение имён по падежам в PHP требуется достаточно часто, и в этой статье я расскажу, как это можно реализовать у себя на сайте.

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

    Второй вариант — написать свой класс склонений имён на PHP, либо воспользоваться уже готовым. Поскольку правила в русском языке достаточно сложные, плюс есть масса исключений, поэтому и библиотека потребуется очень большая, да и даже она далеко не 100% спасение. Наиболее популярная из всех библиотек, занимающихся склонением имён на PHP, является NameCaseLib.

    Скачав эту библиотеку и поместив на свой сайт, её можно использовать вот так:

    require_once «NCL.NameCase.ru.php»; // Подключаем русскую библиотеку
    $case = new NCLNameCaseRu(); // Создаём объект класса NCLNameCaseRu
    $array = $case->q(«Русаков Михаил Юрьевич»); // Получаем массив из 6-ти элементов соответствующих 6-ти падежам, в которых окажется входная строка
    print_r($array); // Выводим массив
    ?>

    Как видите, использовать библиотеку очень просто. С другой стороны, мой главный совет будет следующий: по-возможности вообще избегайте необходимости склонять слова. Всё равно будут иногда вводить люди то, что склоняться никак не может, и попытки склонения будут выглядеть нелепо. Ведь необязательно писать «Добавить в друзья Илью«, можно же ведь написано просто «Добавить в друзья» на странице Ильи.

    Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 1 ):

    Выдаёт пустой массив, то есть, как пустой, входная строка в нём не отображается. Сначала он на путь ругался, одно звено добавил, теперь с ним порядок. Версия библиотеки 0.4. Что ещё можно сделать?

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Источник статьи: http://myrusakov.ru/php-namecase.html


    0 0 голоса
    Article Rating
    Подписаться
    Уведомить о
    guest

    0 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии