博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP汉字转换拼音http://blog.qita.in
阅读量:6992 次
发布时间:2019-06-27

本文共 1227 字,大约阅读时间需要 4 分钟。

  hot3.png

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

='5.0') ? array_combine($_TDataKey, $_TDataValue) : _Array_Combine($_TDataKey, $_TDataValue);arsort($_Data);reset($_Data);if($_Code != 'gb2312') $_String = _U2_Utf8_Gb($_String);$_Res = '';for($i=0; $i
160) { $_Q = ord(substr($_String, ++$i, 1)); $_P = $_P*256 + $_Q - 65536; }$_Res .= _Pinyin($_P, $_Data);}return preg_replace("/[^a-z0-9]*/", '', $_Res);}function _Pinyin($_Num, $_Data){if ($_Num>0 && $_Num<160 ) return chr($_Num);elseif($_Num<-20319 || $_Num>-10247) return '';else {foreach($_Data as $k=>$v){ if($v<=$_Num) break; }return $k;}}function _U2_Utf8_Gb($_C){$_String = '';if($_C < 0x80) $_String .= $_C;elseif($_C < 0x800){$_String .= chr(0xC0 | $_C>>6);$_String .= chr(0x80 | $_C & 0x3F);}elseif($_C < 0x10000){$_String .= chr(0xE0 | $_C>>12);$_String .= chr(0x80 | $_C>>6 & 0x3F);$_String .= chr(0x80 | $_C & 0x3F);} elseif($_C < 0x200000) {$_String .= chr(0xF0 | $_C>>18);$_String .= chr(0x80 | $_C>>12 & 0x3F);$_String .= chr(0x80 | $_C>>6 & 0x3F);$_String .= chr(0x80 | $_C & 0x3F);}return iconv('UTF-8', 'GB2312', $_String);}function _Array_Combine($_Arr1, $_Arr2){for($i=0; $i

转载于:https://my.oschina.net/cceo5/blog/81221

你可能感兴趣的文章
对玩家爱好的深渊魔王们--魔兽争霸里的Azgalor评议
查看>>
OC学习笔记十 封装
查看>>
php源码编译yum源没有libmcrypt 相关的包
查看>>
安装rlwrap, 使用rlwrap调用sqlplus中历史命令
查看>>
DelegatingFilterProxy的原理及运用
查看>>
Memcached调用程序
查看>>
DHCP服务器安装与配置
查看>>
Java程序员从笨鸟到菜鸟之(四十六)细谈struts2(八)拦截器的实现原理及源码剖析...
查看>>
View Storage Accelerator is unavailable because vSphere 5.0 or higher is required
查看>>
TP-LINK普通路由器与三层交换机的对接使用
查看>>
JSP笔记——4.七个动作指令
查看>>
UMl
查看>>
关于sqlMap中的一些小问题
查看>>
失恋不等于失败_450
查看>>
交换机端口绑定
查看>>
【C语言】 模拟计算器
查看>>
(C#基本语法)1.符号与标记
查看>>
TCP状态转换--值得学习--方便记忆
查看>>
浅谈前端性能优化
查看>>
经典的GDB调试命令
查看>>