https://github.com/overtrue/php-opencc
中文简繁转换,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。
https://github.com/overtrue/php-opencc
Last synced: 5 months ago
JSON representation
中文简繁转换,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。
- Host: GitHub
- URL: https://github.com/overtrue/php-opencc
- Owner: overtrue
- License: mit
- Created: 2023-06-12T06:49:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-08-12T03:02:26.000Z (5 months ago)
- Last Synced: 2025-08-12T05:26:02.775Z (5 months ago)
- Language: PHP
- Size: 985 KB
- Stars: 97
- Watchers: 2
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# PHP OpenCC
中文简繁转换,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。基于 [BYVoid/OpenCC](https://github.com/BYVoid/OpenCC) 数据实现。
[](https://github.com/overtrue/php-opencc/actions/workflows/test.yml)
[](https://packagist.org/packages/overtrue/php-opencc)
[](https://packagist.org/packages/overtrue/php-opencc)
[](https://packagist.org/packages/overtrue/php-opencc)
## 安装
```shell
composer require overtrue/php-opencc -vvv
```
## 使用
```php
use Overtrue\PHPOpenCC\OpenCC;
echo OpenCC::convert('服务器', 'SIMPLIFIED_TO_TAIWAN_WITH_PHRASE');
// output: 伺服器
// 批量转换
OpenCC::convert(['程序员', '服务器'], 'SIMPLIFIED_TO_TAIWAN_WITH_PHRASE');
// output: ['程式設計師', '伺服器']
```
### 使用策略别名
```php
use Overtrue\PHPOpenCC\OpenCC;
use Overtrue\PHPOpenCC\Strategy;
// 以下方法等价:
// 方法
echo OpenCC::s2tw('服务器');
echo OpenCC::simplifiedToTaiwan('服务器');
// 字符串
echo OpenCC::convert('服务器', 's2tw');
echo OpenCC::convert('服务器', 'S2TW');
echo OpenCC::convert('服务器', 'SIMPLIFIED_TO_TAIWAN');
// 常量
echo OpenCC::convert('服务器', Strategy::S2TW);
echo OpenCC::convert('服务器', Strategy::SIMPLIFIED_TO_TAIWAN);
```
### 流式/文件转换(可选)
```php
use Overtrue\PHPOpenCC\StreamConverter;
// 流到流
touch('out.txt');
$in = fopen('input.txt', 'rb');
$out = fopen('out.txt', 'wb');
StreamConverter::convertStream($in, $out, 'S2T');
// 文件到文件
StreamConverter::convertFile('input.txt', 'out.txt', 'S2TWP');
```
> 注意:按行转换不适用于跨行的词组替换场景。
### 转换策略
| 策略 (别名) | 说明 |
|-------------------------------------------|-----------------|
| `SIMPLIFIED_TO_TRADITIONAL(S2T)` | 简体到繁体 |
| `SIMPLIFIED_TO_HONGKONG(S2HK)` | 简体到香港繁体 |
| `SIMPLIFIED_TO_JAPANESE(S2JP)` | 简体到日文 |
| `SIMPLIFIED_TO_TAIWAN(S2TW)` | 简体到台湾正体 |
| `SIMPLIFIED_TO_TAIWAN_WITH_PHRASE(2TWP)` | 简体到台湾正体, 带词汇本地化 |
| `HONGKONG_TO_TRADITIONAL(HK2T)` | 香港繁体到正体 |
| `HONGKONG_TO_SIMPLIFIED(HK2S)` | 香港繁体到简体 |
| `TAIWAN_TO_SIMPLIFIED(TW2S)` | 台湾正体到简体 |
| `TAIWAN_TO_TRADITIONAL(TW2T)` | 台湾正体到繁体 |
| `TAIWAN_TO_SIMPLIFIED_WITH_PHRASE(TW2SP)` | 台湾正体到简体, 带词汇本地化 |
| `TRADITIONAL_TO_HONGKONG(T2HK)` | 正体到香港繁体 |
| `TRADITIONAL_TO_SIMPLIFIED(T2S)` | 繁体到简体 |
| `TRADITIONAL_TO_TAIWAN(T2TW)` | 繁体到台湾正体 |
| `TRADITIONAL_TO_JAPANESE(T2JP)` | 繁体到日文 |
| `JAPANESE_TO_TRADITIONAL(JP2T)` | 日文到繁体 |
| `JAPANESE_TO_SIMPLIFIED(JP2S)` | 日文到简体 |
### 在命令行使用
```shell
php vendor/bin/opencc "汉字" s2tw
```
说明:
```bash
$ php vendor/bin/opencc --help
Description:
中文简繁转换,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。
Usage:
convert []
Arguments:
string 待转换的字符串
strategy 转换策略 [default: "SIMPLIFIED_TO_TRADITIONAL"]
```
### 性能与部署建议
- 强烈建议在生产环境开启并配置 Opcache,并将常用字典文件加入 `opcache.preload`,可显著降低首次调用延迟。
- 典型 php.ini 片段(示例):
```ini
opcache.enable=1
opcache.enable_cli=1
opcache.preload=/path/to/preload.php
```
- `preload.php` 示例:
```php