PHPackages                             yurunsoft/chinese-util - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. yurunsoft/chinese-util

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

yurunsoft/chinese-util
======================

PHP 中文工具包，支持汉字转拼音、拼音分词、简繁互转、数字转换、金额数字转换。

v2.0.6(2w ago)513113.1k↓44.3%69[4 issues](https://github.com/Yurunsoft/ChineseUtil/issues)3MITPHP

Since Feb 13Pushed 4y ago12 watchersCompare

[ Source](https://github.com/Yurunsoft/ChineseUtil)[ Packagist](https://packagist.org/packages/yurunsoft/chinese-util)[ RSS](/packages/yurunsoft-chinese-util/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (2)Versions (17)Used By (3)

ChineseUtil
===========

[](#chineseutil)

PHP 中文工具包，支持汉字转拼音、拼音分词、简繁互转、数字转换、金额数字转换。

由于中文的博大精深，字有多音字，简体字和繁体字也有多种对应。并且本类库返回的所有结果，均为包含所有组合的数组。

本类库字典数据总共收录 73925 个汉字，包括：3955 个简体字，1761 个繁体字，68209 个其它汉字。

模式
--

[](#模式)

### 性能模式 (Memory)

[](#性能模式-memory)

使用 SQLite 作为数据载体，一次性加载所有数据到变量，内存占用高(80+ MB)，性能最佳。

适合用于运行 Cli 任务。

需要 PDO 和 PDO\_SQLITE 扩展支持。

### 通用模式 (SQLite)

[](#通用模式-sqlite)

使用 SQLite 作为数据载体，每次查询都通过 SQL 查询，内存占用低(100-200 KB)，性能中等。

适合用于大部分场景。

需要 PDO 和 PDO\_SQLITE 扩展支持。

### 兼容模式 (JSON)

[](#兼容模式-json)

使用精简过的 JSON 数据作为数据载体，一次性加载所有数据到变量，内存占用中(30+ MB)，性能差。

> 内存占用量以实际为准，根据版本、扩展等环境的不同，占用的内存容量不一样，上述值为我电脑上的情况，仅供参考。

适合无法使用 PDO 的场景。

由于精简了数据，一些拼音结果需要经过代码计算处理才可以得出，所以性能较差。

### FFI 模式 (FFI)

[](#ffi-模式-ffi)

需要 PHP &gt;= 7.4 并且启用 FFI 扩展，代码全部由 C++ 开发，性能和内存占用都比 PHP 实现的要好。

> FFI 动态库 C++ 代码：

### Swoole FFI 模式 (SwooleFFI)

[](#swoole-ffi-模式-swooleffi)

需要 PHP &gt;= 7.4 并且启用 FFI、Swoole 扩展，代码全部由 C++ 开发，性能和内存占用都比 PHP 实现的要好。

不会阻塞 PHP 代码所在线程。

---

默认情况下，优先使用通用模式，如果环境不支持 PDO 将采用兼容模式。

你可以在未执行任何初始化或者转换处理之前，设置使用何种模式运行。

```
// 设为性能模式
Chinese::setMode('Memory');
// 设为通用模式
Chinese::setMode('SQLite');
// 设为兼容模式
Chinese::setMode('JSON');
// 设为 FFI 模式
Chinese::setMode('FFI');
// 设为Swoole FFI 模式
Chinese::setMode('SwooleFFI');
```

无论何种模式，拼音分词所需数据总是从 JSON 数据中加载。

FFI 参数设置：(一般用于自己编译的情况)

```
use Yurun\Util\Chinese\FFIDriver;

FFIDriver::$library = '.so 文件路径';
FFIDriver::$characterDataPath = '字符数据文件路径';
FFIDriver::$pinyinDataPath = '拼音数据文件路径';
```

使用说明
----

[](#使用说明)

### Composer 直接安装

[](#composer-直接安装)

`composer require yurunsoft/chinese-util`

### Composer 项目配置引入

[](#composer-项目配置引入)

```
"require": {
    "yurunsoft/chinese-util" : "~2.0"
}

```

功能
--

[](#功能)

### 汉字转拼音

[](#汉字转拼音)

```
use \Yurun\Util\Chinese;
use \Yurun\Util\Chinese\Pinyin;
$string = '恭喜發財！123';
echo $string, PHP_EOL;

echo '全拼:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN));

echo '首字母:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_FIRST));

echo '读音:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND));

echo '读音数字:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER));

echo '自选返回格式 + 以文本格式返回 + 自定义分隔符:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN | Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER, ' '));

echo '所有结果:', PHP_EOL;
var_dump(Chinese::toPinyin($string));

echo '不分割无拼音字符:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN, ' ', false));

// 结果太长，请自行运行代码查看
```

### 拼音分词

[](#拼音分词)

**结果是字符串：**

```
use \Yurun\Util\Chinese;
$string2 = 'xianggang';
echo '"', $string2, '"的分词结果:', PHP_EOL;
var_dump(Chinese::splitPinyin($string2));
```

输出结果:

```
"xianggang"的分词结果:
array(2) {
  [0]=>
  string(11) "xiang gang"
  [1]=>
  string(12) "xi ang gang"
}
```

**结果是数组：**

```
use \Yurun\Util\Chinese;
$string2 = 'xianggang';
echo '"', $string2, '"的分词结果:', PHP_EOL;
var_dump(Chinese::splitPinyinArray($string2));
```

输出结果:

```
"xianggang"的分词结果:
array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "xiang"
    [1]=>
    string(4) "gang"
  }
  [1]=>
  array(3) {
    [0]=>
    string(2) "xi"
    [1]=>
    string(3) "ang"
    [2]=>
    string(4) "gang"
  }
}
```

### 简繁互转

[](#简繁互转)

```
use \Yurun\Util\Chinese;
$string3 = '中华人民共和国！恭喜發財！';
echo '"', $string3, '"的简体转换:', PHP_EOL;
var_dump(Chinese::toSimplified($string3));
echo '"', $string3, '"的繁体转换:', PHP_EOL;
var_dump(Chinese::toTraditional($string3));
```

输出结果:

```
"中华人民共和国！恭喜發財！"的简体转换:
array(1) {
  [0]=>
  string(39) "中华人民共和国！恭喜发财！"
}
"中华人民共和国！恭喜發財！"的繁体转换:
array(1) {
  [0]=>
  string(39) "中華人民共和國！恭喜發財！"
}
```

### 数字转换

[](#数字转换)

```
use Yurun\Util\Chinese\Number;
function test($number)
{
    $chinese = Number::toChinese($number, [
        'tenMin'    =>  true, // “一十二” => “十二”
    ]);
    $afterNumber = Number::toNumber($chinese);
    echo $number, '=>', $chinese, '=>', $afterNumber, '=>', 0 === bccomp($number, $afterNumber, 20) ? 'true' : 'false', PHP_EOL;
}

test(1.234);
test(-1234567890.666);
test(pi());
```

输出结果:

```
1.234=>一点二三四=>1.234=>true
-1234567890.666=>负十二亿三千四百五十六万七千八百九十点六六六=>-1234567890.666=>true
3.1415926535898=>三点一四一五九二六五三五八九八=>3.1415926535898=>true
```

### 金额数字转换

[](#金额数字转换)

```
use Yurun\Util\Chinese\Money;
function test($number)
{
    $chinese = Money::toChinese($number, [
        'tenMin'    =>  true, // “一十二” => “十二”
    ]);
    $afterMoney = Money::toNumber($chinese);
    echo $number, '=>', $chinese, '=>', $afterMoney, '=>', 0 === bccomp($number, $afterMoney) ? 'true' : 'false', PHP_EOL;
}

test(1.234);
test(-1234567890.666);
```

输出结果:

```
输出结果:
1.234=>壹圆贰角叁分肆厘=>1.234=>true
-1234567890.666=>负壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾圆陆角陆分陆厘=>-1234567890.666=>true
```

###  Health Score

54

—

FairBetter than 96% of packages

Maintenance53

Moderate activity, may be stable

Popularity53

Moderate usage in the ecosystem

Community24

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 98.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~203 days

Recently: every ~498 days

Total

16

Last Release

18d ago

Major Versions

v1.1.3 → v2.0.02020-08-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/6f917bb42280d114c53cebadc2942a13ee03abe14971089f88895e266d637169?d=identicon)[Yurunsoft](/maintainers/Yurunsoft)

---

Top Contributors

[![Yurunsoft](https://avatars.githubusercontent.com/u/20104656?v=4)](https://github.com/Yurunsoft "Yurunsoft (72 commits)")[![wilbur-yu](https://avatars.githubusercontent.com/u/7148309?v=4)](https://github.com/wilbur-yu "wilbur-yu (1 commits)")

---

Tags

chinesechinese-simplifiedchinese-traditionalffiphppinyinpinyin-analysis

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/yurunsoft-chinese-util/health.svg)

```
[![Health](https://phpackages.com/badges/yurunsoft-chinese-util/health.svg)](https://phpackages.com/packages/yurunsoft-chinese-util)
```

###  Alternatives

[amcgowanca/discoverable_entity_bundle_classes

An experimental approach for implementing entity classes for specific bundles.

14108.0k](/packages/amcgowanca-discoverable-entity-bundle-classes)[larament/seokit

A complete SEO package for Laravel, covering everything from meta tags to social sharing and structured data.

452.8k](/packages/larament-seokit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
