php gbk转拼音
2015-10-20 10:24
471 查看
/**
* gbk转拼音
* @param $txt
*/
function gbk_to_pinyin($txt) {
$l = strlen($txt);
$i = 0;
$pyarr = array();
$py = array();
$filename = CODETABLEDIR . 'gb-pinyin.table';
$fp = fopen($filename, 'r');
while (!feof($fp)) {
$p = explode("-", fgets($fp, 32));
$pyarr[intval($p[1])] = trim($p[0]);
}
fclose($fp);
ksort($pyarr);
while ($i < $l) {
$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;
}
* gbk转拼音
* @param $txt
*/
function gbk_to_pinyin($txt) {
$l = strlen($txt);
$i = 0;
$pyarr = array();
$py = array();
$filename = CODETABLEDIR . 'gb-pinyin.table';
$fp = fopen($filename, 'r');
while (!feof($fp)) {
$p = explode("-", fgets($fp, 32));
$pyarr[intval($p[1])] = trim($p[0]);
}
fclose($fp);
ksort($pyarr);
while ($i < $l) {
$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;
}
相关文章推荐
- DotNet中FTP操作
- php 计算3公里内 用户的距离
- php计算两个经纬度地点之间的距离
- PHP对象在内存中的分配
- Smarty之变量调节器
- php导入导出execl方法
- php数组相加 两个数组键名相同 后者不能覆盖前者
- YII 2 配置
- PHP 命名空间 解惑
- Yii2 Form表单样式修改
- 华为三层交换机STP配置
- PHP中如何使用session实现保存用户登录信息
- php json中文乱码问题
- 烂泥:ubuntu下配置msmtp+mutt发送邮件
- 烂泥:ubuntu下配置msmtp+mutt发送邮件
- PHP的语言结构和函数的区别
- php大力力:技术排错过程中,关键点总结和心情历程(2015-10-19)
- PHP 页面抓取技术
- Laravel安装
- PHP中如何使用session实现保存用户登录信息