方法一虽然也能转,但是没办法同时兼顾字符串中的英文和数字,只能选择兼顾英文或者数字,没法同时兼顾

例如:‘这是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',
//),