wordpress(php)汉字转换成拼音的方法

昨天研究iphoto这个主题,想实现一个功能:根据标题的汉语拼音的首字母顺序排序,网上找到了排序的方法,那是英文的,于是想到汉字转汉语拼音,下面是网上找的资料,能用,我已经测试成功!

代码:
1、汉字转拼音函数:

= '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 < strlen($_String); $i++) { $_P = ord(substr($_String, $i, 1)); if ($_P > 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 < count($_Arr1); $i++) $_Res[$_Arr1[$i]] = $_Arr2[$i]; return $_Res; } ?>

2、调用方法:
看你的php编码是什么的,要是GB2312编码,就使用方法一,如果是UTF-8的就使用方法二

//第二个参数留空则为gb2312编码
echo cn2pinyin('我要转换');
//第二个参数随意设置则为utf-8编码
echo cn2pinyin('我要转换',1);

源码下载地址:

点击下载: 中文转换为拼音源码.rar

未经允许不得转载:WEIXING.ME » wordpress(php)汉字转换成拼音的方法

相关文章

评论 (0)

  1. avatar
    过客05-07 1:36回复

    博主您好!我是在沐风iphoto主题下的留言板上看到您关于iphoto主题的留言的,我是个新手,现在正在学习wordpress,关于iphoto主题我也和您一样,想修改一下(有上一篇下一篇按钮、首页图片下方可以加文字说明),可是对于PHP不太懂,您能不能把您修改过的iphoto主题给我发一个,让我学习学习,不胜感激!

    • avatar
      WEIXING05-08 20:06回复

      可以,留下你的联系方式,发给你!

      • avatar
        过客05-09 18:25回复

        太感谢了!我的邮箱zixuan.qq@163.com

        • avatar
          WEIXING05-10 7:04回复

          已经发给你了,注意查收!

  2. avatar

    这个方法不错啊收藏了

  3. avatar
    笨小孩06-26 22:01回复

    毫不留情的拿走了

  4. avatar
    ACGod10-27 3:40回复

    博主您好!请问这个怎么用?放到主题文件夹里?echo cn2pinyin('我要转换',1);这个又放到那呢?我用相册的时候点图片它会弹到图片地址。怎么才能禁止相册功能的超链接呢?。麻烦帮帮忙!谢谢!

  5. avatar
    WEIXING10-27 11:29回复

    echo cn2pinyin('我要转换',1);这个放在你要展示内容的地方,echo不就是输出显示的意思吗,后边的函数是把你的内容“我要转换”转换成拼音!

    • avatar
      ACGod11-01 22:01回复

      我想办标题和标签的别名转换成拼音的

  6. avatar

    路过看一下!