提供三個核心函數實現中文轉拼音:
utf82gb($utfstr):UTF-8 → GBKSpGetPinyin($str, $ishead=0, $isclose=1):GBK 字符串 → 拼音(全拼/首字母)getPinyin($string):UTF-8 直接轉拼音(組合上述兩函數)iconv()(高效、標準)iconv 時加載映射表 gb2312-utf8.table 手動轉換代碼; 實體pinyin.db 映射文件(格式:區位碼 拼音)$ishead=1 時只取首字母# gb2312-utf8.table
000000 000000
...
# pinyin.db
B0A1 a
B0A2 ai
B0A3 an
...
echo getPinyin("中國WEB第一站");
// 輸出:zhongguowebdiyizhan (全拼)
// 或 getPinyin("中國", 1) → zg (首字母)
.table、.db 文件mbstring/iconv 可靠composer require overtrue/pinyin
// 使用
use Overtrue\Pinyin\Pinyin;
$pinyin = new Pinyin();
echo $pinyin->permalink('帶英雄氣的男兒'); // dai-ying-xiong-qi-de-nan-er
Transliterator (intl 擴展)$t = Transliterator::create('Any-Latin; Latin-ASCII');
echo $t->transliterate('中國'); // Zhong Guo
| 庫 | 多音字 | 分詞 | 性能 | 維護 |
|---|---|---|---|---|
| overtrue/pinyin | ✓ (詞典) | ✓ | 高 | 活躍 |
| jiannei/laravel-pinyin | ✓ | ✓ | 高 | 活躍 |
| pinpin/pinyin | ✗ | ✗ | 中 | 一般 |