PHP技术

当前位置:首页 > PHP技术 >

php将汉字转换成拼音的函数代码

时间:2015-06-22        阅读:次        QQ群:182913345

在php中将汉字转换成拼音的函数,注意要先准确个汉字拼音字典库,具体实现代码如下:

<?php
/**
 * 汉字转拼音
 * @param string $str 待转换的字符串
 * @param string $charset 字符串编码
 * @param bool $ishead 是否只提取首字母
 * @return string 返回结果
 */
function GetPinyin($str,$charset="utf-8",$ishead = 0) {
	$restr = '';
	$str = trim($str);
	if($charset=="utf-8"){
		$str=iconv("utf-8","gb2312",$str);
	}
	$slen = strlen($str);
	$pinyins=array();
	if ($slen < 2) {
		return $str;
	}
	$fp = fopen('./Public/js/pinyin.dat', 'r');
	while (!feof($fp)) {
		$line = trim(fgets($fp));
		$pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3);
	}
	fclose($fp);
	
	for ($i = 0; $i < $slen; $i++) {
		if (ord($str[$i]) > 0x80) {
			$c = $str[$i] . $str[$i + 1];
			$i++;
			if (isset($pinyins[$c])) {
				if ($ishead == 0) {
					$restr .= $pinyins[$c];
				} else {
					$restr .= $pinyins[$c][0];
				}
			} else {
				$restr .= "_";
			}
		} else if (preg_match("/[a-z0-9]/i", $str[$i])) {
			$restr .= $str[$i];
		} else {
			$restr .= "_";
		}
	}
	return $restr;
}

上一篇:ThinkPHP 自动完成实例

下一篇:ThinkPHP 字段映射

扫一扫,更多精彩内容推送

PHP技术分享

分享PHP技术,前端技术,数据库,SEO优化,服务器,网络安全等知识,是php程序员工作学习的好帮手!

Copyright © 2013-2015.PHP技术分享 www.php520.cn  版权所有  网站地图    PHP学习交流群

免责声明:网站内容收集于互联网,本网站不承担任何由于内容的合法性及健康性所引起的争议和法律责任。

欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。 沪ICP备15014499号-2