整个过程用到了pinyin.table文件。

pinyin.php

header("Content-Type:text/html;charset=utf-8");

$letters = "";

if ($_GET) {

$cat_name = $_GET["cat_name"];

$catname = convert($cat_name);

$letters = get_letter($catname, false);

}

function get_letter($catname, $letter = true) {

return $letter ? strtolower(substr(gb2py($catname), 0, 1)) : str_replace(' ', '', gb2py($catname));

}

function gb2py($text, $exp = '') {

if(!$text) return '';

$data = array();

$tmp = @file('pinyin.table'); // 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。

if(!$tmp) return '';

$tmps = count($tmp);

for($i = 0; $i < $tmps; $i++) {

$tmp1 = explode("", $tmp[$i]);

$data[$i]=array($tmp1[0], $tmp1[1]);

}

$r = array();

$k = 0;

$textlen = strlen($text);

for($i = 0; $i < $textlen; $i++) {

$p = ord(substr($text, $i, 1));

if($p > 160) {

$q = ord(substr($text, ++$i, 1));

$p = $p*256+$q-65536;

}

if($p > 0 && $p < 160) {

$r[$k] = chr($p);

} elseif($p< -20319 || $p > -10247) {

$r[$k] = '';

} else {

for($j = $tmps-1; $j >= 0; $j--) {

if($data[$j][1]<=$p) break;

}

$r[$k] = $data[$j][0];

}

$k++;

}

return implode($exp, $r);

}

function convert($str, $from = 'utf-8', $to = 'gb2312') {

if(!$str) return '';

$from = strtolower($from);

$to = strtolower($to);

if($from == $to) return $str;

$from = str_replace('gbk', 'gb2312', $from);

$to = str_replace('gbk', 'gb2312', $to);

$from = str_replace('utf8', 'utf-8', $from);

$to = str_replace('utf8', 'utf-8', $to);

if($from == $to) return $str;

$tmp = array();

if(function_exists('iconv')) {

if(is_array($str)) {

foreach($str as $key => $val) {

$tmp[$key] = iconv($from, $to."//IGNORE", $val);

}

return $tmp;

} else {

return iconv($from, $to."//IGNORE", $str);

}

} else if(function_exists('mb_convert_encoding')) {

if(is_array($str)) {

foreach($str as $key => $val) {

$tmp[$key] = mb_convert_encoding($val, $to, $from);

}

return $tmp;

} else {

return mb_convert_encoding($str, $to, $from);

}

} else {

require_once 'convert.func.php';

return dconvert($str, $to, $from);

}

}

?>

echo $letters;

?>

pinyin.table

a-20319

ai-20317

an-20304

ang-20295

ao-20292

ba-20283

bai-20265

ban-20257

bang-20242

bao-20230

bei-20051

ben-20036

beng-20032

bi-20026

bian-20002

biao-19990

bie-19986

bin-19982

bing-19976

bo-19805

bu-19784

ca-19775

cai-19774

can-19763

cang-19756

cao-19751

ce-19746

ceng-19741

cha-19739

chai-19728

chan-19725

chang-19715

chao-19540

che-19531

chen-19525

cheng-19515

chi-19500

chong-19484

chou-19479

chu-19467

chuai-19289

chuan-19288

chuang-19281

chui-19275

chun-19270

chuo-19263

ci-19261

cong-19249

cou-19243

cu-19242

cuan-19238

cui-19235

cun-19227

cuo-19224

da-19218

dai-19212

dan-19038

dang-19023

dao-19018

de-19006

deng-19003

di-18996

dian-18977

diao-18961

die-18952

ding-18783

diu-18774

dong-18773

dou-18763

du-18756

duan-18741

dui-18735

dun-18731

duo-18722

e-18710

en-18697

er-18696

fa-18526

fan-18518

fang-18501

fei-18490

fen-18478

feng-18463

fo-18448

fou-18447

fu-18446

ga-18239

gai-18237

gan-18231

gang-18220

gao-18211

ge-18201

gei-18184

gen-18183

geng-18181

gong-18012

gou-17997

gu-17988

gua-17970

guai-17964

guan-17961

guang-17950

gui-17947

gun-17931

guo-17928

ha-17922

hai-17759

han-17752

hang-17733

hao-17730

he-17721

hei-17703

hen-17701

heng-17697

hong-17692

hou-17683

hu-17676

hua-17496

huai-17487

huan-17482

huang-17468

hui-17454

hun-17433

huo-17427

ji-17417

jia-17202

jian-17185

jiang-16983

jiao-16970

jie-16942

jin-16915

jing-16733

jiong-16708

jiu-16706

ju-16689

juan-16664

jue-16657

jun-16647

ka-16474

kai-16470

kan-16465

kang-16459

kao-16452

ke-16448

ken-16433

keng-16429

kong-16427

kou-16423

ku-16419

kua-16412

kuai-16407

kuan-16403

kuang-16401

kui-16393

kun-16220

kuo-16216

la-16212

lai-16205

lan-16202

lang-16187

lao-16180

le-16171

lei-16169

leng-16158

li-16155

lia-15959

lian-15958

liang-15944

liao-15933

lie-15920

lin-15915

ling-15903

liu-15889

long-15878

lou-15707

lu-15701

lv-15681

luan-15667

lue-15661

lun-15659

luo-15652

ma-15640

mai-15631

man-15625

mang-15454

mao-15448

me-15436

mei-15435

men-15419

meng-15416

mi-15408

mian-15394

miao-15385

mie-15377

min-15375

ming-15369

miu-15363

mo-15362

mou-15183

mu-15180

na-15165

nai-15158

nan-15153

nang-15150

nao-15149

ne-15144

nei-15143

nen-15141

neng-15140

ni-15139

nian-15128

niang-15121

niao-15119

nie-15117

nin-15110

ning-15109

niu-14941

nong-14937

nu-14933

nv-14930

nuan-14929

nue-14928

nuo-14926

o-14922

ou-14921

pa-14914

pai-14908

pan-14902

pang-14894

pao-14889

pei-14882

pen-14873

peng-14871

pi-14857

pian-14678

piao-14674

pie-14670

pin-14668

ping-14663

po-14654

pu-14645

qi-14630

qia-14594

qian-14429

qiang-14407

qiao-14399

qie-14384

qin-14379

qing-14368

qiong-14355

qiu-14353

qu-14345

quan-14170

que-14159

qun-14151

ran-14149

rang-14145

rao-14140

re-14137

ren-14135

reng-14125

ri-14123

rong-14122

rou-14112

ru-14109

ruan-14099

rui-14097

run-14094

ruo-14092

sa-14090

sai-14087

san-14083

sang-13917

sao-13914

se-13910

sen-13907

seng-13906

sha-13905

shai-13896

shan-13894

shang-13878

shao-13870

she-13859

shen-13847

sheng-13831

shi-13658

shou-13611

shu-13601

shua-13406

shuai-13404

shuan-13400

shuang-13398

shui-13395

shun-13391

shuo-13387

si-13383

song-13367

sou-13359

su-13356

suan-13343

sui-13340

sun-13329

suo-13326

ta-13318

tai-13147

tan-13138

tang-13120

tao-13107

te-13096

teng-13095

ti-13091

tian-13076

tiao-13068

tie-13063

ting-13060

tong-12888

tou-12875

tu-12871

tuan-12860

tui-12858

tun-12852

tuo-12849

wa-12838

wai-12831

wan-12829

wang-12812

wei-12802

wen-12607

weng-12597

wo-12594

wu-12585

xi-12556

xia-12359

xian-12346

xiang-12320

xiao-12300

xie-12120

xin-12099

xing-12089

xiong-12074

xiu-12067

xu-12058

xuan-12039

xue-11867

xun-11861

ya-11847

yan-11831

yang-11798

yao-11781

ye-11604

yi-11589

yin-11536

ying-11358

yo-11340

yong-11339

you-11324

yu-11303

yuan-11097

yue-11077

yun-11067

za-11055

zai-11052

zan-11045

zang-11041

zao-11038

ze-11024

zei-11020

zen-11019

zeng-11018

zha-11014

zhai-10838

zhan-10832

zhang-10815

zhao-10800

zhe-10790

zhen-10780

zheng-10764

zhi-10587

zhong-10544

zhou-10533

zhu-10519

zhua-10331

zhuai-10329

zhuan-10328

zhuang-10322

zhui-10315

zhun-10309

zhuo-10307

zi-10296

zong-10281

zou-10274

zu-10270

zuan-10262

zui-10260

zun-10256

zuo-10254

备注:新建text文件复制下面代码到文件,重命名文件名pinyin.table

php 自定义函数转字母大小,PHP自定义函数实现文字到拼音转换功能相关推荐

  1. R语言ggplot2可视化散点图、可视化两个数值变量之间的关系、使用geom_smooth函数基于loess方法拟合数据点之间的趋势关系曲线、自定义数据点的大小、色彩、添加主标题、副标题、题注信息

    R语言ggplot2可视化散点图.可视化两个数值变量之间的关系(Scatter plot).使用geom_smooth函数基于loess方法拟合数据点之间的趋势关系曲线.自定义数据点的大小.色彩.添加 ...

  2. R语言使用GGally包的ggpairs函数可视化变量相关性分析图:包含散点图、密度图、柱状图、箱图等、并自定义数据点的大小

    R语言使用GGally包的ggpairs函数可视化变量相关性分析图:包含散点图.密度图.柱状图.箱图等.并自定义数据点的大小 目录

  3. Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot)、通过size参数指定数据点的大小、自定义不同分组的气泡的色彩

    Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot).通过size参数指定数据点的大小.自定义不同分组的气泡的色彩 目录

  4. R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩、自定义调色板、在两端添加点图的线段segments、整体排序从大到小、自定义数据点的大小、添加数值标签)

    R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩.自定义调色板.在两端添加点图的线段segments.整体排序从大到小.自定义数据点的大小.添加数值标签) 目录

  5. seaborn箱图(box plot)可视化、并且使用matplotlib的meanprops函数在箱图中自定义均值标签、标签形状、标签大小、标签填充色彩、标签边缘颜色

    seaborn箱图(box plot)可视化.并且使用matplotlib的meanprops函数在箱图中自定义均值标签.标签形状.标签大小.标签填充色彩.标签边缘颜色 目录

  6. R语言ggplot2可视化散点图(scatter plot)、使用scale_size函数自定义指定散点大小的度量、scale_fill_distiller函数自定义指定散点的颜色映射(填充色的度量)

    R语言ggplot2可视化散点图(scatter plot).使用scale_size函数自定义指定散点大小的度量.scale_fill_distiller函数自定义指定散点的颜色映射(填充色的度量) ...

  7. php 统计磁盘大小,PHP_PHP统计目录大小的自定义函数分享,计算文件、磁盘分区和目录的 - phpStudy...

    PHP统计目录大小的自定义函数分享 计算文件.磁盘分区和目录的大小在各种应用程序中都是常见的任务.计算文件的大小可以通过前面介绍过的filesize()函数完成,统计磁盘大小也可以使用disk_fre ...

  8. MYSQL8 创建自定义函数 首字母拼音

    话不多说,直接上代码: # 解决报错:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA set global log ...

  9. Android自定义一个车牌字母选择键盘

    在一般和车相关的应用,难免会和车牌打交道,组成车牌的要素,国内无非就是省份简称+地区代码+英文或者数字组成,比如京A12345,在需要输入车牌的功能上,就需要有省份简称键盘和英文数字键盘了,在上篇的文 ...

  10. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

最新文章

  1. vagrant 介绍,安装与使用
  2. 重新定位svn地址的方法(windows和linux),svn switch(sw)的帮助信息
  3. 解决VC++ Error spawning cl.exe 问题·
  4. 您能否提供一些示例,说明为什么用正则表达式很难解析XML和HTML? [关闭]
  5. TypeForwardedTo Attribute ---- 类型传递
  6. vr二维码_VR小花看看app
  7. Effective Java之在细节消息中包含能捕获失败的消息(六十三)
  8. Ruby 的环境搭建及安装
  9. Myeclipse5.5获取注册码
  10. 从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接
  11. 常用的stm32库函数
  12. sklearn 常用模块及类与方法
  13. Yum 安装 mysql5.7
  14. 【转载】H264编码原理以及I帧、B帧、P帧
  15. 通信系统设计中的凸优化问题
  16. 利用gitlab pages和hexo搭建一个个人博客
  17. 36小时阿里大佬用了讲完的Java,整整372集,分分钟白嫖!!
  18. 在img的图片上添加文字
  19. 手眼标定,9点标定过程及其运算
  20. 前端3D开发,你需要了解的知识汇总

热门文章

  1. C#往图片上面添加文字
  2. 数论:快速傅里叶变换FFT题集
  3. ITSM系统_CMDB设计_业务要件
  4. locust 性能测试工具(V2.8.6)
  5. 边境的悍匪—机器学习实战:第十八章 强化学习
  6. 网站使用微信网页授权,qq登录
  7. 基于颜色的R2V软件快速矢量化
  8. VMware虚拟机操作汇总
  9. 手写深度学习之优化器(SGD、Momentum、Nesterov、AdaGrad、RMSProp、Adam)
  10. u盘安装centos8黑屏_求助啊为何装centos7一点安装就黑屏