php gbk 拼音,php 基于gbk和 Ascii把汉字转换为拼音
在php开发中有把汉字转换为拼音的需求
这里主要说明Ascii和gbk 格式的汉字转为拼音的内容,如果你是utf-8的,那就通过iconv()函数转utf-8为gbk,在进行拼音转换//Ascii转拼音
function asc_to_pinyin($asc,$pyarr){
if($asc<128){
return chr($asc);
}elseif(isset($pyarr[$asc])){
return $pyarr[$asc];
}else{
foreach($pyarr as $id=>$p){
if($id>=$asc){
return $p;
}
}
}
}
//gbk转拼音
function gbk_to_pinyin($txt){
$l = strlen($txt); //返回字符串长度strlen("证人")以字节为单位,gbk编码下,一个汉字2个字节,所有“证人”长度为4。区别于mb_strlen()已个数为单位返回长度,mb_strlen(“证人”);返回长度2
$i = 0;
$pyarr = array();
$py = array();
$filename = 'gb-pinyin.table'; //拼音表文件,这里路径根据文件位置自行设置
$fp = fopen($filename,'r');
while(!feof($fp)){
$p = explode("-",fgets($fp,32)); //fgets()经常和while循环配合使用,因为fgets()读取内容是以行为单位的。读完一行就立马返回(前提是这一行没有到达文件末尾,并且是在设定的长度范围内)。所以要在循环中一行一行读取。从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
$pyarr[intval($p[1])] = trim($p[0]);
}
fclose($fp);
ksort($pyarr);
while($i
$tmp = ord($txt[$i]);
if($tmp>=128){
$asc = abs($tmp*256+ord($txt[$i+1])-65536);
$i = $i+1;
}else{
$asc = $tmp;
}
$py[] = asc_to_pinyin($asc,$pyarr);
$i++;
}
return $py;
}
$py = gbk_to_pinyin('证人');
print_r($py);
结果:Array
(
[0] => zheng
[1] => ren
)
下载拼音库文件,下载之后自己保存为gb-pinyin.table
php gbk 拼音,php 基于gbk和 Ascii把汉字转换为拼音相关推荐
- php 基于gbk和 Ascii把汉字转换为拼音
在php开发中有把汉字转换为拼音的需求 这里主要说明Ascii和gbk 格式的汉字转为拼音的内容,如果你是utf-8的,那就通过iconv()函数转utf-8为gbk,在进行拼音转换 //Ascii转 ...
- oracle把中文转换为拼音,怎样将“Oracle”的外部表汉字转换为拼音
怎样将"Oracle"的外部表汉字转换为拼音 2008-03-07 eNet&Ciweek 我在原来的应用中使用代码表加一个函数来处理汉字转拼音的转换问题,现在由于工作需要 ...
- java将汉字转成拼音首字母大写字母_Java 将汉字转换为拼音并取首字母大写
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先需要引入pinyin4j-2.5.0.jar 在定义一个servlet.Java的类,写一个Converting方法 实例代码详解如下: public ...
- 基于struts2、spring、spring data jpa实现poi导入 + pinyin4j将汉字转换为拼音
基于struts2.spring.spring data jpa实现poi导入 + pinyin4j将汉字转换为拼音 1.引入坐标到pom.xml <!-- Excel解析工具类 -->& ...
- php繁体拼音字母,[UTF-8]汉字转换为拼音首字母pinyinFirstChar.fn.php
说明: 一个PHP函数,可以将UTF-8编码的汉字转换为拼音首字母,由GBK的汉字转拼音首字母的函数修改而来.只转换GBK编码内的汉字,标点.字母及GBK内没有的汉字将直接输出不转换. 用法: ech ...
- 程序实现汉字转换为拼音
做了一个讯飞语音识别的项目,API返回的识别结果是汉字格式.需要提取关键字与数据库中的数据进行匹配,为提高数据的识别率.考虑到需要将数据库中的文字和识别后的数据转换为拼音的形式进行匹配.但也没找到相关 ...
- java 中文转成_Java实现汉字转换为拼音 [转]
代码说明: Java实现汉字转换为拼音的GUI版本. GUI代码部分: /** * @(#)CnToSpellGUI.java * kindani * 2004-10-25?? * */ import ...
- java把汉字转换成拼音_Java实现汉字转换为拼音
本文的核心代码取自easydozer的blog:http://blog.csdn.net/easydozer/ 代码说明: Java实现汉字转换为拼音的GUI版本. GUI代码部分: /** * @( ...
- java jisuan da xie zi mu ge shu_Java 实现汉字转换为拼音的实例
Java 实现汉字转换为拼音 转换类 public class PINYINChinese { private static int[] pyvalue = new int[] { -20319, - ...
最新文章
- 你说,一个Java字符串到底有多少个字符?
- 数据结构与算法之贪心算法 C++实现
- 049_Number对象
- AI理论知识整理(11)-线性组合线性相关与线性无关
- NIPS 2017 | 线上分享第一期:似自然梯度的优化算法KFAC与强化学习算法ACKTR
- webService学习3:客户端生成webservice代码
- c# 2.0 Factory的实现
- 8086减法指令SUB
- python 加权随机算法_加权随机算法 - 飞儿飞的个人空间 - OSCHINA - 中文开源技术交流社区...
- 利用ipsec配置tcp/ip用于安全连接
- 【每日算法Day 96】腾讯面试题:合并两个有序数组
- 顺应“互联网+医疗”大势 富春云携手阿里云打造云 PACS 项目
- leetcode 859. Buddy Strings
- 【】每日360题,2019.11.02日08点财会类考试习题答案
- QT使用ODBC连接MySQL
- PHP公历农历转换(阴历阳历转换)阴历和阳历转换
- 嵌入式Linux MIPI接口LCD调试-关于DRM显示与应用调试的干货浓缩
- 医学四视图-005-四视图加按钮
- C++ 二元一次不定方程巧妙求解——运用扩展欧几里得算法
- 高手教你ie主页被篡改怎么办|加个参数永远不怕IE主页被修改