https://blog.csdn.net/hz7523/article/details/115429402
在线演示
本文范例采用 composer
1.安装插件 (我本地用git安装)
在站点目录下 右键 git bash here
composer require "overtrue/pinyin:~3.0"
封装类
namespace fast;
use Overtrue\Pinyin\Pinyin;
class Spell {
//$str 中文或字母
//$ret_format all 取全部字母;first取声母
public static function change($str, $ret_format = 'all', $space = "", $tone = false){
//不提前载入,字典文件在使用时已文件流形式打开并逐行遍历,运用 yield 特性分配内存,对于内存的消耗非常微小,但转换较慢
$pinyin = new Pinyin('Overtrue\Pinyin\GeneratorFileDictLoader');
//将字典预先载入内存-优点是比较快-适用于内存相对充足的服务器
// $pinyin = new Pinyin('Overtrue\Pinyin\MemoryFileDictLoader');
//以上两种二选一
if($tone == true){
$pinyin = $pinyin->convert($str,PINYIN_UNICODE);
}else{
$pinyin = $pinyin->convert($str);
}
$rs = [];
foreach($pinyin as $value){
if($ret_format == "first"){
$chr = mb_substr($value, 0, 1);
$rs[] =$chr;
}
else{
$rs[] = $value;
}
}
return join($space, $rs);
}
}
引用
public function change() {
print_r(Spell::change('厶部 厷厸厹厺厼厽厾叀叁参叄叅叆叇亝 又部 収叏叐叒叓叕叚叜叝叞叠吤吥吧吩吪吭吮吰吱吲吴呐', ' '));
}