方法一虽然也能转,但是没办法同时兼顾字符串中的英文和数字,只能选择兼顾英文或者数字,没法同时兼顾
例如:‘这是need转换为拼音的字符串1’,方法一没办法转成‘zheshineedzhuanhuanweipinyindezifuchuan1’,只能转换成zheshineedzhuanhuanweipinyindezifuchuan,或者zheshizhuanhuanweipinyindezifuchuan1
解决方案:https://github.com/gitsher/pinyin/
示例:
简单转换
Pinyin_Pinyin::convertPinyin('UTF8-PHP版汉字转拼音');
// UTF8-PHPbanhanzizhuanpinyin
简单转换,自定义连接符
Pinyin_Pinyin::convertPinyin('UTF8-PHP版汉字转拼音', '_');
// U_T_F_8_-_P_H_P_ban_han_zi_zhuan_pin_yin
首字母转换
Pinyin_Pinyin::convertInitalPinyin('UTF8-PHP版汉字转拼音');
// UTF8-PHPbhzzpy
多音字
Pinyin_Pinyin::convertPinyinList('UTF8-PHP版汉字转拼音多音字-圈');
//
//array(
//'UTF8-PHPbanhanzizhuanpinyinduoyinzi-quan',
//'UTF8-PHPbanhanzizhuanpinyinduoyinzi-juan',
//'UTF8-PHPbanhanzizhuanpinyinduoyinzi-juan',
//);
多音字首字母
Pinyin_Pinyin::convertInitalPinyinList('UTF8-PHP版汉字转拼音多音字-圈');
//array(
//'UTF8-PHPbhzzpydyz-q',
//'UTF8-PHPbhzzpydyz-j',
//'UTF8-PHPbhzzpydyz-j',
//);
所有转换结果
Pinyin_Pinyin::convertAllPinyinList('UTF8-PHP版汉字转拼音多音字-圈');
//array (
//'full' =>
//array (
//'UTF8-PHPbanhanzizhuanpinyinduoyinzi-quan',
//'UTF8-PHPbanhanzizhuanpinyinduoyinzi-juan',
//'UTF8-PHPbanhanzizhuanpinyinduoyinzi-juan',
//), 'initial' =>
//array (
//'UTF8-PHPbhzzpydyz-q',
//'UTF8-PHPbhzzpydyz-j',
//'UTF8-PHPbhzzpydyz-j',
//),