PHP 汉字转拼音 [包含20902个基本汉字+5059生僻字]

<?php
/**
 * PHP 汉字转拼音 [包含20902个基本汉字+5059生僻字]
 * @note 请开启 mb_string 扩展
 */
/* 测试用例
$start_time = microtime(1);

var_dump(pinyin('对多音字无能为力'));
var_dump(pinyin('最全的PHP汉字转拼音库,比百度词典还全(dict.baidu.com)'));
var_dump(pinyin('试试:㐀㐁㐄㐅㐆㐌㐖㐜'));
var_dump(pinyin('一起开始数:12345'));
var_dump(pinyin('海南'));
var_dump(pinyin('乌鲁木齐'));
var_dump(pinyin('前总理朱镕基'));
var_dump(pinyin('仅首字母', 'first'));
var_dump(pinyin('占-位-符-为-空', 'all', ''));
var_dump(pinyin('不允许中文以外的字符', 'first', '', ''));

for ($i=0; $i<1e4; $i++) { // 性能次数,转换1万次
    pinyin('对多音字无能为力');
    pinyin('最全的PHP汉字转拼音库,比百度词典还全(dict.baidu.com)');
    pinyin('试试:㐀㐁㐄㐅㐆㐌㐖㐜');
    pinyin('一起开始数:12345');
    pinyin('海南');
    pinyin('乌鲁木齐');
    pinyin('前总理朱镕基');
    pinyin('仅首字母', 'first');
    pinyin('占-位-符-为-空', 'all', '');
    pinyin('不允许中文以外的字符', 'first', '', '');
}

echo number_format(microtime(1) - $start_time, 6);
*/

/**
 * 中文转拼音 (utf8版,gbk转utf8也可用)
 * @param string $str         utf8字符串
 * @param string $ret_format  返回格式 [all:全拼音|first:首字母|one:仅第一字符首字母]
 * @param string $placeholder 无法识别的字符占位符
 * @param string $allow_chars 允许的非中文字符
 * @return string             拼音字符串
 */
function pinyin($str, $ret_format = 'all', $placeholder = '_', $allow_chars = '/[a-zA-Z\d ]/') {
    static $pinyins = null;
    }
    /**
    源码过多导致页面卡,此处源码略
    **/
    return rtrim($rs, ' ');
}
?>

完整源码请下载

https://www.lanzous.com/i6mwgij

解压密码:detechn或www.detechn.com
最后修改:2019 年 10 月 08 日 11 : 44 AM
如果觉得我的文章对你有帮助,请随意赞赏

发表评论