600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php 自定义函数转字母大小 PHP自定义函数实现文字到拼音转换功能

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

时间:2019-11-04 02:35:33

相关推荐

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

整个过程用到了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-0

bei-1

ben-6

beng-2

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。