PHP RUtils — библиотека для обработки русского текста

Обсуждение документации. Переводы Cookbook и авторские рецепты.
Ответить
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

PHP RUtils — библиотека для обработки русского текста

Сообщение yiijeka »

Кратко, что содержит библиотека:
PHP RUtils — небольшая библиотека для обработки русского текста

Код: Выделить всё

Выбор формы множественного числа

$variants = array(
    'гвоздь', //1
    'гвоздя', //2
    'гвоздей' //5
);
echo $amount, ' ', RUtils::numeral()->choosePlural(15, $variants);
//Result: 15 гвоздей

echo RUtils::numeral()->getPlural(2, $variants);
//Result: 2 гвоздя      

Код: Выделить всё

Выбор формы и вывод прописью

echo RUtils::numeral()->sumString(1234, RUtils::MALE, $variants);
//Result: одна тысяча двести тридцать четыре гвоздя      

Код: Выделить всё

$params = new TimeParams();
$params->date = null; //это значение по умолчанию
$params->format = 'сегодня d F Y года';
$params->monthInflected = true;
echo RUtils::dt()->ruStrFTime($params);
//Result: сегодня 22 октября 2013 года      

Код: Выделить всё

Временной период между фиксированными датами
$fromTime = '1988-01-01 11:40';
$toTime = '2088-01-01 12:35';
$accuracy = 3; //дни, часы, минуты
echo RUtils::dt()->distanceOfTimeInWords($toTime, $fromTime, $accuracy);
//Result: через 36 525 дней, 55 минут       

Код: Выделить всё

//Транслитерация
echo RUtils::translit()->translify('Муха — это маленькая птичка');
//Result: Muha - eto malen'kaya ptichka

//Обратное преобразование
echo RUtils::translit()->detranslify("SCHuka");
//Result: Щука

//Подготовка для использования в URL'ях или путях
echo RUtils::translit()->slugify('Муха — это маленькая птичка');
//Result: muha---eto-malenkaya-ptichka        
На хабре - http://habrahabr.ru/post/198544/
Попробовал - приятная.
Репозиторий вот тут:
https://github.com/Andre-487/php_rutils

Подключается:
1. кидаем в protected/vendors/php_rutils (или куда пожелаете ;)
2. Подлючаем в любом месте, где используем:

Код: Выделить всё

<?php
Yii::setPathOfAlias('php_rutils', Yii::getPathOfAlias('application') . '\vendor\php_rutils');
use php_rutils\RUtils;

class SiteController extends Controller
{
    public function actionIndex()
    {
        $model = Post::model()->findByPk(1);
        $model->date = RUtils::dt()->distanceOfTimeInWords($model->date);
        echo $model->date; // вернёт например: 24 976 дней, 11 часов, 21 минуту назад
    }
}

 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: PHP RUtils — библиотека для обработки русского текста

Сообщение samdark »

Выбор формы множественного числа Yii и так умеет. Причём для всех языков.

Остальное похоже на intl только для одного языка.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: PHP RUtils — библиотека для обработки русского текста

Сообщение yiijeka »

)) Тоже самое про это говорил разработчику, в intl гораздо больше возможностей.. Yii2 ещё нету, да и intl.dll у меня не везде был доступен. Может кому и пригодится, просто рецепт.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: PHP RUtils — библиотека для обработки русского текста

Сообщение maleks »

с intl раньше не работал.
Но вот как транслитерировать с русского на английский? (для slug-a в чпу)
Пишу:

Код: Выделить всё

var_dump(\transliterator_transliterate("ASCII-Latin", 'Привет мир')); 
выдает - Привет мир

Можно с помощью intl делать то что обычно делалось данным способом ?
Ответить