Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Универсальное склонение слов на PHP с использованием Яндекс.API
Пример простейшей функции, которая возвращает слово в нужном склонении
function inflect($what,$inflection_id)
{
// Функция склонения названий, имен и любой другой фигни
// Суть функции - ищем слово с нужной формой склонения в базе.
// Если не нашли - дергаем склонятор Яндекса и кешируем в базу ответ.
GLOBAL $mysql;
$inflected="";
$res_inflected=$mysql->query_to_array("select * from set_of_inflections where `original`='".$what."' and inflection_id='".$inflection_id."' limit 1");
if(!empty($res_inflected))
{
$inflected=$res_inflected['inflected'];
}
else
{
$parser=xml_parser_create();
$data=@file_get_contents('http://export.yandex.ru/inflect.xml?name='.urlencode($what));
// print_r($data);
if($data){
xml_parse_into_struct($parser,$data,$structure,$index);
if($structure){
// print_r($structure);
foreach($structure as $key)
{
if(!isset($key['tag']) || !isset($key['value']))continue;
elseif($key['tag']=='INFLECTION')
{
$inf[$what][$key['attributes']['CASE']]=$key['value'];
$res_inflected=$mysql->query_to_array("insert into set_of_inflections (`original`, `inflection_id`, `inflected`)
values ('".$what."',".$key['attributes']['CASE'].",'".$key['value']."')");
if($key['attributes']['CASE']==$inflection_id)
{
$inflected=$key['value'];
}
}
}
}
}
xml_parser_free($parser);
}
if($inflected=="") $inflected=$what;
return $inflected;
}
(c)Илья Артеменко (goblin)
C недавних пор Яндекс удалил описание Яндекс.Склонятора. Сервис продолжает работать.
В настоящее время яндекс-склонятор не работает! Используйте Функция склонения слов на основе phpMorphy или
API склонения слов.
Пример пакетного склонения
Для всех строк в файле file.txt запрашиваются все словоформы и выводятся на экран. Не используйте этот пример повторно, обязательно сохраняйте все в базу, иначе получите бан от яндекса.
header('Content-Type: text/html ; charset="utf-8"');
$file = file_get_contents('file.txt');
$file = explode(chr(10), $file);
$delim = '|';
foreach ($file as $k => $v) {
$url = "http://export.yandex.ru/inflect.xml?name=$v";
$xml = simplexml_load_file($url);
$original = $xml->original;
$im = trim($xml->inflection[0]);
$rod = trim($xml->inflection[1]);
$dat = trim($xml->inflection[2]);
$vin = trim($xml->inflection[3]);
$tvor = trim($xml->inflection[4]);
$predl = trim($xml->inflection[5]);
echo $im.$delim.$rod.$delim.$dat.$delim.$vin.$delim.$tvor.$delim.$predl.chr(10);
echo '<br />';
}
(с)Сейшельский - seosey.ru
Смотрите также склонятор с учетом морфологии русского языка
.
Прокомментировать/Отблагодарить