andre_487/php_rutils

此包已被废弃且不再维护。未建议替代包。

RUtils 是一个针对俄语的字符串工具(转写,数字词,俄语日期,排版)

1.2.0 2015-10-24 17:20 UTC

This package is not auto-updated.

Last update: 2021-04-30 21:53:12 UTC


README

不再支持

摘要

License Latest Stable Version

Build Status Code Climate

RUtils 是针对 PHP 的俄语特定字符串工具(转写,数字词,俄语日期,排版),这是 Python Pytils 到 PHP 的移植。

请参阅 doc 子目录 中的其他文档和示例。

库已发布在 Composer 上:https://packagist.org.cn/packages/andre_487/php_rutils

RUtils — 俄语文本处理工具(转写,数字的单词表示,俄语日期,基本排版)的 PHP 库。RUtils — Pytils 的 PHP 版本。

请参阅 doc 目录 中的文档和示例。

库通过 Composer 可用:https://packagist.org.cn/packages/andre_487/php_rutils

Daily Downloads Monthly Downloads Total Downloads

我愿意接受有关项目的建议、错误报告和 pull 请求。

项目遵循 PSR-2 编码风格。CI 阶段使用 PHP_CodeSniffer 检查风格。

我要向所有为改进项目做出贡献的人表示衷心的感谢。

基本用法

PHP RUtils 模块

  • 数字 - 数字的多形式和单词表示
  • Dt - 无地区和日期处理的俄语日期
  • Translit - 简单转写
  • Typo - 基本俄语排版

数字

根据数字选择单词形式

$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: одна тысяча двести тридцать четыре гвоздя

打印数字的单词表示

$numeral = RUtils::numeral();
echo $numeral->getInWordsInt(100);
//Result: сто

echo $numeral->getInWordsFloat(100.025);
//Result: сто целых двадцать пять тысячных

echo $numeral->getInWords(100.0);
//Result: сто

打印货币(RUB)

echo RUtils::numeral()->getRubles(100.25);
//Result: сто рублей двадцать пять копеек

Dt

今天的日期: \php_rutils\struct\TimeParams - 参数结构,可以以数组形式传递

$params = new TimeParams();
$params->date = null; //default value, 'now'
$params->format = 'сегодня d F Y года';
$params->monthInflected = true;
echo RUtils::dt()->ruStrFTime($params);
//Result: сегодня 22 октября 2013 года

历史日期

$params = array(
    'date' => '09-05-1945',
    'format' => 'l d F Y была одержана победа над немецко-фашистскими захватчиками',
    'monthInflected' => true,
    'preposition' => true,
);
echo RUtils::dt()->ruStrFTime($params);
//Result: в среду 9 мая 1945 была одержана победа над немецко-фашистскими захватчиками

固定日期的时间间隔

$toTime = new \DateTime('05-06-1945'); //Unix timestamp and string also available
echo RUtils::dt()->distanceOfTimeInWords($toTime), PHP_EOL;
//Result: 68 лет назад

$toTime = strtotime('05-06-1945');
$fromTime = null; //now
$accuracy = RUtils::ACCURACY_MINUTE; //years, months, days, hours, minutes
echo RUtils::dt()->distanceOfTimeInWords($toTime, $fromTime, $accuracy), PHP_EOL;
//Result: 68 лет, 4 месяца, 21 день, 19 часов, 12 минут назад

固定日期与固定日期之间的时间间隔

$fromTime = '1988-01-01 11:40';
$toTime = '2088-01-01 12:35';
$accuracy = RUtils::ACCURACY_MINUTE; //years, months, days, hours, minutes
echo RUtils::dt()->distanceOfTimeInWords($toTime, $fromTime, $accuracy), PHP_EOL;
//Result: через 100 лет, 55 минут

年龄

$birthDate = strtotime('today - 25 years');
echo RUtils::dt()->getAge($birthDate);
//Result: 25

Translit

//Translify
echo RUtils::translit()->translify('Муха - это маленькая птичка');
//Result: Muxa - e`to malen`kaya ptichka

//Detranslify
echo RUtils::translit()->detranslify("Muxa - e`to malen`kaya ptichka");
//Result: Муха - это маленькая птичка

//Prepare to use in URLs or file paths
echo RUtils::translit()->slugify('Муха — это маленькая птичка');
//Result: muha-eto-malenkaya-ptichka

Typo

$text = <<<TEXT
...Когда В. И. Пупкин увидел в газете ( это была "Сермяжная правда" № 45) рубрику Weather Forecast (r),
он не поверил своим глазам - температуру обещали +-451F.
TEXT;

//Standard rules
echo RUtils::typo()->typography($text);
/**
 * Result:
 * ...Когда В. И. Пупкин увидел в газете (это была «Сермяжная правда» №45) рубрику Weather Forecast®,
 * он не поверил своим глазам — температуру обещали ±451°F.
 */


//Extended rules
echo RUtils::typo()->typography($text, TypoRules::$EXTENDED_RULES);
/**
 * Result:
 * …Когда В. И. Пупкин увидел в газете (это была «Сермяжная правда» №45) рубрику Weather Forecast®,
 * он не поверил своим глазам — температуру обещали ±451 °F.
 */

//Custom rules
echo RUtils::typo()->typography($text, array(TypoRules::DASHES, TypoRules::CLEAN_SPACES));
/**
 * Result:
 * ...Когда В. И. Пупкин увидел в газете (это была "Сермяжная правда" № 45) рубрику Weather Forecast (r),
 * он не поверил своим глазам — температуру обещали +-451F.
 */