- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
<?php
function variation($name, $cache = true)
{
$hach = md5($name);
//Проверяем кэш, если его нет - делаем запрос к API(JSON).
if (!file_exists('cache/variation/' . $hach . '.cache')) {
$c = file_get_contents('http://export.yandex.ru/inflect.xml?name=' . urlencode($name) . '&format=json');
//Записываем кэш
if ($cache === true) {
file_put_contents('cache/variation/' . $hach . '.cache', $c);
}
}
//Если кэш есть - берем оттуда.
else {
$c = file_get_contents('cache/variation/' . $hach . '.cache');
}
//Возвращаем массив(Функция работает только с UTF-8)
return json_decode($c, true);
}
$arr = variation('Москва');
/*
//Переводим в cp1251(JSON).
$arr = variation('Москва');
//Для всего массива
function _iconv($val)
{
return iconv('utf-8', 'cp1251', $val);
}
$arr = array_map('_iconv', $arr);
//Или для отдельного элемента
$arr[1] = iconv('utf-8', 'cp1251', $arr[1]);
*/
echo 'Оригинал: ', $arr['original'], '<br/>';
echo 'Именительный: ', $arr[1], '<br/>';
echo 'Родительный: ', $arr[2], '<br/>';
echo 'Дательный: ', $arr[3], '<br/>';
echo 'Винительный: ', $arr[4], '<br/>';
echo 'Творительный: ', $arr[5], '<br/>';
echo 'Предложный: ', $arr[6], '<br/>';