PHP - php汉字转拼音
php汉字转拼音
php函数(由dedecms(dedecms/include/inc/inc_fun_funAdmin.php)的SpGetPinyin函数修改,dedecms的字典不太完全):
<?php
function pinyin($str, $ishead) {
static $pinyins = array();
$restr = '';
$str = trim($str);
$slen = strlen($str);
if($slen < 2) {
return $str;
}
if(count($pinyins) == 0) {
$fp = fopen('pinyin.dic', 'r');
while(!feof($fp)) {
$line = trim(fgets($fp));
$a2 = explode('`', $line);
isset($a2[1]) && $pinyins[$a2[0]] = $a2[1];
}
fclose($fp);
}
for($i=0; $i<$slen; $i++) {
if(ord($str[$i])>0x80) {
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])) {
$restr.= ($ishead==0)?$pinyins[$c]:$pinyins[$c][0];
}else {
$restr .= "_";
}
}else if( preg_match("/[a-z0-9]/i", $str[$i]) ) {
$restr .= $str[$i];
}
else {
$restr .= "_";
}
}
return $restr;
}
//测试
echo pinyin('舒熱佳隔热膜',1),'<br>';
echo pinyin('舒熱佳隔热膜',0),'<br>';
echo pinyin('鹦鹉',1),'<br>';
echo pinyin('鹦鹉',0),'<br>';
echo pinyin('眠之堡/依诺维绅/myside床垫',1),'<br>';
echo pinyin('眠之堡/依诺维绅/myside床垫',0),'<br>';
/*结果:
srjgrm
shurejiageremo
yw
yingwu
mzb_ynws_mysidecd
mianzhibao_yinuoweishen_mysidechuangdian*/
?>
包含的字典见附件:pinyin.rar/pinyin.dic (gbk)
下载地址:http://files.cnblogs.com/luoyunshu/pinyin.rar
PHP - php汉字转拼音的更多相关文章
- iOS 汉字的拼音
获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** * 汉字的拼音 * * @return ...
- JavaScript 汉字与拼音互转终极方案 附JS拼音输入法
转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...
- SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...
- 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字 ...
- C#汉字转拼音(支持多音字)
之前由于项目需要,中间需要一个汉字转拼音和首拼的功能来做查询,感觉这种功能基本已经成熟化了,于是查找了相关的代码,首先引入眼帘的是下面两篇文章 1.C# 汉字转拼音(支持GB2312字符集中所有汉字) ...
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Visual S ...
- C#汉字转拼音帮助类
using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressi ...
- js汉字与拼音互转终极方案,附简单的JS拼音输入法【转】
github项目地址:https://github.com/liuxianan/pinyinjs 完整demo演示:http://demo.liuxianan.com/pinyinjs/ 汉字转拼音: ...
- MySQL按照汉字的拼音排序
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...
- Java汉字转拼音
import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCase ...
随机推荐
- Install Package and Software
svn http://tortoisesvn.sourceforge.net/ git https://download.tortoisegit.org/ http://git-for-windows ...
- linux编译安装LAMP
Linux安装Apache+MySQL+PHP 安装部分依赖 安装apr(可选) # tar -xf apr-1.5.0.tar.bz2 # cd apr-1.5.0 #./configure --p ...
- 礼仪或许就是尊重的还有一个说法——leo鉴书61
<Leo鉴书(第1辑)>已登陆百度阅读,今后还将不断更新,免费下载地址:http://t.cn/RvawZEx 礼仪从字面上就区分成"礼"和"仪"两 ...
- [TypeScript] 0.First Example
Create a greeter.ts file: class Student { fullname : string; constructor(public firstname, public mi ...
- CSS_使用css布局
本文出自:http://blog.csdn.net/svitter 1. 创建一个HTML页面, 其内容为一个无序列表,列表中至少包括了5本畅销书,每本书之前的项目符号必须採用概述封面的缩略图.这 ...
- PullToRefreshScrollView 修改下拉刷新图标
我的修改比较简单暴力.网上查了一番,貌似大家都没有改,无奈,查了一下源码.发现如下资源目录: 在看看我们的布局文件,此三个图片就是下拉刷新的三种图标 好吧,flip就是我目前的下拉刷新图片,对应的也就 ...
- 开启一个指定action的Activity
开启一个指定action的Activity如果你想要使用android系统自带的一些服务,如照相机,通信录,打电话等,那么你就得需要知道对应服务(也就是在AndroidManifest.xml中< ...
- Java基础知识强化之IO流笔记39:字符流缓冲流之复制文本文件案例01
1. 字符流缓冲流之复制文本文件案例 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 数据源: a.txt -- 读取数据 -- 字符转换流 -- InputStreamRe ...
- Storm集群扩容——从单机模式拓展到集群模式,以此类推
Storm是分布式的实时流处理系统,单机模式肯本不能体现其强大特点,尤其是当需要处理的数据很大很快的 时候,Storm可以随时扩容,而且操作非常简单,编写的应用程序自动负载均衡. 前面已经介绍了如何安 ...
- 实现一个脚本语言Raven(一)
之前实现了Raven语言的0.1版,仅仅支持表达式处理与控制语句,由于不支持数组.函数.类,甚至都不是图灵完全的语言. 现在参考vczh的博客打算重新写一遍Raven语言.陈祖不愧是神啊,高中就写出支 ...