今天照常登陆php新闻网站,看到首页的一则文字类的新闻,汉字转换拼音字头原理,闲来无事,用php实践下,把它写出来

/**
* 汉字转换为拼音字头
* @author jkj
*/
class HzToPyHeader
{
//传说中的160,16进制为a0,so..
static $BaseCode = 0xa0;
// 国标一级汉字不同读音的起始区位码
private $secPosValueList = array(
1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472,
3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 9999);
// 国标一级汉字不同读音的起始区位码对应读音
private $firstLetter = array(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'w', 'x', 'y', 'z');
// 区位码=字节的ASCII码-160(汉字基数),而一个汉字的区位码为字节相加值,例蒋(29,15) 2915
// ps : 以下都以gb2312为例,一般一个汉字占2个字节,
// 第一个字节的ASCII码-160(汉字基数)按拼音排序都在16-55之间
function __construct(){
}
/**
* Hanzi section-position code
* 得到汉字的区位码
* @param string $hanzi
* @return array
*/
final function secposcode($hanzi){
$spc = array();
for($i=0; $i<strlen($hanzi); $i++)
{
$_P = ord(substr($hanzi, $i, 1))-self::$BaseCode;
$_G = ord(substr($hanzi, ++$i, 1))-self::$BaseCode;
if($_G<10) $_G = "0".strval($_G);
$spc[] = strval($_P).strval($_G);
}
return $spc;
}
final function getFirst($hz){
$rs = array();
foreach ($this->secposcode($hz) as $k=>$v){
foreach ($this->secPosValueList as $in_k=>$in_v){
if($v>=$in_v) $rs[$k]=$this->firstLetter[$in_k];
}
}
return implode("",$rs);
}
}
$htph = new HzToPyHeader();
print_r($htph->secposcode("蒋某人"));
echo $htph->getFirst("蒋某人");

汉字转换拼音字头原理实践相关推荐

  1. 汉字转换为拼音字头的工具类与原理

    基础知识 GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个. 分区表示 GB 2312中对所收汉字进行了"分区"处理,每区含有94个汉字/符号.这 ...

  2. 昵称到拼音php,php 汉字转换拼音程序_PHP教程

    php 汉字转换拼音程序 $p=ord(substr($str,$i,1)); if($p>160){ $q=ord(substr($str,++$i,1)); $p=$p*256+$q-655 ...

  3. php汉字转换拼音,PHP汉字转换拼音的函数代码

    /************ *汉字转换拼音Class *************/ class pin{ function Pinyin($_String, $_Code='gb2312'){ $_D ...

  4. php 汉字转拼音类,PHP汉字转换拼音的类_php

    网络上类似的代码大多只能在gb2312编码下使用,下面这个类同时能在utf-8编码下将汉字转换为拼音,具体的代码和用法如下: function Pinyin($_String, $_Code='gb2 ...

  5. Java汉字转换拼音工具类

    1. 使用pinyin4j 1.1 引入相关maven依赖 <dependency><groupId>com.belerweb</groupId><artif ...

  6. 中文汉字转换拼音PHP类

    1 <?php 2 /** 3 * 中文汉字转换拼音类 4 * 功能支持 5 * 1.支持中文转换全拼 6 * 2.支持中文转换简拼(首字母) 7 * 3.支持转换的字符串返回格式设置(字符中间 ...

  7. java汉字转换拼音

    1.汉字转换拼音首先引入一个叫pinyin4j-2.5.0.jar 下载地址:http://download.csdn.net/detail/yao__shun__yu/4670228 2.测试代码 ...

  8. java 汉字转换拼音

    java 汉字转换拼音 maven依赖 <dependency><groupId>com.belerweb</groupId><artifactId>p ...

  9. php汉字转换拼音,PHP汉字转换拼音

    搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. /************ *汉字转换拼音Class *2012.12 **** ...

最新文章

  1. ubuntu安装OpenCV详细教程(建议收藏)
  2. Linux/Ubuntu
  3. 直播预告 | 长文本知识抽取:基于语义分割的文档级三元组关系抽取
  4. vc中ASSERT()和VERIFY()区别
  5. 小程序css之圆角边框
  6. android 崩溃捕获框架,DefenseCrash
  7. java工具链 有什么_Iodine:一个优秀的Java语言工具链
  8. 无需U盘在Windows下安装Linux系统实现双系统(非子系统)
  9. python中类的实例化_python类的实例化
  10. 基于MC1496乘法器的AM信号调制
  11. 读书-思考力|《金字塔原理》
  12. 【PI控制】位置式PI的拉普拉斯变化和离散化(在开关电源的应用)
  13. indesign用于产品排班_怎样利用Indesign来进行高效的排版ID:30077776
  14. H5点击复制按钮复制文本
  15. 二分匹配Hopcroft-Carp算法
  16. iOS视频 压缩过程 AVAssetExportSessionStatusFailed 文件创建失败
  17. 【无标题】体验scratch海底世界
  18. LTE 系统信息SI
  19. Linux安装mysql没有my.cnf文件
  20. pubg手机版服务器维护,pubg国际版服务器维护

热门文章

  1. MacBook Pro 14/16英寸2021款 扬声器 爆音问题 噼啪声
  2. sql数据库修复技巧:用达思sql数据库修复软件时表重复怎么搞办?
  3. 【复习】计算机网络学习笔记
  4. 连接器 SM05B-PASS-TBT R/A 5POS 2MM SMD
  5. 基于Python的图书推荐系统的设计与实现
  6. 蓝桥杯校内选拔赛(河南农业大学)
  7. 全身三维人体扫描仪信息汇总
  8. 小米平板4(Plus) LTE 开通话模式教程+root权限获取
  9. Human Resource Machine(程序员升职记)-40倍扩大器
  10. 制造业的生产质量分析报告,敲重点,最全攻略来了!