PHP中文工具类,支持汉字转拼音、拼音分词、简繁互转。
目前本类库拥有的三个功能,都是在实际开发过程中整理出来的。这次使用的数据不同于以前我开源过汉字转拼音和简繁互转,数据都是从字典网站采集下来的,比以前的数据更加准确。
由于中文的博大精深,字有多音字,简体字和繁体字也有多种对应。并且本类库返回的所有结果,均为包含所有组合的数组。
本类库字典数据总共收录73925个汉字,包括:3955个简体字,1761个繁体字,68209个其它汉字。
功能汉字转拼音use\Yuru\Util\Chiese;use\Yuru\Util\Chiese\Piyi;$strig='恭喜發財!123';echo$strig,PHP_EOL;echo'全拼:',PHP_EOL;var_dump(Chiese::toPiyi($strig,Piyi::CONVERT_MODE_PINYIN));echo'首字母:',PHP_EOL;var_dump(Chiese::toPiyi($strig,Piyi::CONVERT_MODE_PINYIN_FIRST));echo'读音:',PHP_EOL;var_dump(Chiese::toPiyi($strig,Piyi::CONVERT_MODE_PINYIN_SOUND));echo'读音数字:',PHP_EOL;var_dump(Chiese::toPiyi($strig,Piyi::CONVERT_MODE_PINYIN_SOUND_NUMBER));echo'自选返回格式+以文本格式返回+自定义分隔符:',PHP_EOL;var_dump(Chiese::toPiyi($strig,Piyi::CONVERT_MODE_PINYIN|Piyi::CONVERT_MODE_PINYIN_SOUND_NUMBER,''));echo'所有结果:',PHP_EOL;var_dump(Chiese::toPiyi($strig));echo'不分割无拼音字符:',PHP_EOL;var_dump(Chiese::toPiyi($strig,Piyi::CONVERT_MODE_PINYIN,'',false));//结果太长,请自行运行代码查看拼音分词结果是字符串:
use\Yuru\Util\Chiese;$strig2='xiaggag';echo'"',$strig2,'"的分词结果:',PHP_EOL;var_dump(Chiese::splitPiyi($strig2));输出结果:
"xiaggag"的分词结果:array(2){[0]=>strig(11)"xiaggag"[1]=>strig(12)"xiaggag"}结果是数组:
use\Yuru\Util\Chiese;$strig2='xiaggag';echo'"',$strig2,'"的分词结果:',PHP_EOL;var_dump(Chiese::splitPiyiArray($strig2));输出结果:
"xiaggag"的分词结果:array(2){[0]=>array(2){[0]=>strig(5)"xiag"[1]=>strig(4)"gag"}[1]=>array(3){[0]=>strig(2)"xi"[1]=>strig(3)"ag"[2]=>strig(4)"gag"}}简繁互转use\Yuru\Util\Chiese;$strig3='中华人民共和国!恭喜發財!';echo'"',$strig3,'"的简体转换:',PHP_EOL;var_dump(Chiese::toSimplified($strig3));echo'"',$strig3,'"的繁体转换:',PHP_EOL;var_dump(Chiese::toTraditioal($strig3));输出结果:
"中华人民共和国!恭喜發財!"的简体转换:array(1){[0]=>strig(39)"中华人民共和国!恭喜发财!"}"中华人民共和国!恭喜發財!"的繁体转换:array(1){[0]=>strig(39)"中華人民共和國!恭喜發財!"}数字转换useYuru\Util\Chiese\Number;fuctiotest($umber){$chiese=Number::toChiese($umber,['teMi'=>true,//“一十二”=>“十二”]);$afterNumber=Number::toNumber($chiese);echo$umber,'=>',$chiese,'=>',$afterNumber,'=>',0===bccomp($umber,$afterNumber,20)?'true':'false',PHP_EOL;}test(1.234);test(-1234567890.666);test(pi());输出结果:
1.234=>一点二三四=>1.234=>true-1234567890.666=>负十二亿三千四百五十六万七千八百九十点六六六=>-1234567890.666=>true3.1415926535898=>三点一四一五九二六五三五八九八=>3.1415926535898=>true金额数字转换useYuru\Util\Chiese\Moey;fuctiotest($umber){$chiese=Moey::toChiese($umber,['teMi'=>true,//“一十二”=>“十二”]);$afterMoey=Moey::toNumber($chiese);echo$umber,'=>',$chiese,'=>',$afterMoey,'=>',0===bccomp($umber,$afterMoey)?'true':'false',PHP_EOL;}test(1.234);test(-1234567890.666);输出结果:
输出结果:1.234=>壹圆贰角叁分肆厘=>1.234=>true-1234567890.666=>负壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾圆陆角陆分陆厘=>-1234567890.666=>true
评论