用户
 找回密码
 入住 CI 中国社区
搜索
查看: 10822|回复: 12
收起左侧

[库 Library] UTF-8中文字符转拼音类

  [复制链接]
发表于 2010-2-5 12:11:42 | 显示全部楼层 |阅读模式
本类实现将UTF-8中文字符转换成拼音 或者实现拼音的首字母连锁。
作用:可以实现索引,按照拼音的首字母进行升降序排列
部分代码: 未命名.jpg
PHP复制代码
function character2acsii($str) {
  $ret = "";
  for($i = 0; $i < strlen ( $str ); $i ++) {
   $p = ord ( substr ( $str, $i, 1 ) );
   if ($p > 160) {
    $q = ord ( substr ( $str, ++ $i, 1 ) );
    $p = $p * 256 + $q - 65536;
   }
   //Without leaving any space  Please delete the string----‘." "’
   $ret .= $this->acsii2character ( $p ) . " ";
  }
  return $ret;
}
/*
  * cn2py
  * @access public
  */

function cn2py($var = null) {
  if (strlen ( trim ( $var ) ) > 0) {
   //make UTF-8 $var to GBK
   $str = iconv ( 'UTF-8', 'GBK', $var );
   return $this->character2acsii ( $str );
  } else {
   return false;
  }
 
}
/*
  * @auth liu
  * @access public
  * the initial letter (of a Chinese character)
  */

function initial($var = null) {
  $pinyin = '';
  $character = $this->cn2py ( $var );
  if (strpos ( $character, ' ' ) > 0) {
   $str = explode ( " ", $character );
   foreach ( $str as $word ) {
    $pinyin .= substr ( $word, 0, 1 );
   }
  } else {
   $pinyin .= substr ( $character, 0, 1 );
  }
  return $pinyin;
}
复制代码

Chinese.rar (3.4 KB, 下载次数: 172)

评分

参与人数 1威望 +5 收起 理由
Hex + 5 原创内容

查看全部评分

 楼主| 发表于 2010-2-5 12:16:08 | 显示全部楼层
:)自己还没发现有任何错误,如有错误请及时与我联系,寻找解决办法
 楼主| 发表于 2010-2-5 13:17:34 | 显示全部楼层
http://www.zblongcheng.com.cn/news/
发表于 2010-2-5 14:44:59 | 显示全部楼层
顶!!加分
 楼主| 发表于 2010-5-6 08:29:34 | 显示全部楼层
我的帖子都石沉大海了 。还有人冒发我的帖子 ,气愤啊 !!!!!
发表于 2010-5-16 22:22:29 | 显示全部楼层
楼主可以教一下怎么使用吗?为何我直接 include 一直出现错误?
发表于 2010-5-16 23:38:15 | 显示全部楼层
有谁会使用?我快被搞疯了!!!

找了数十个 UTF-8 中文转拼音,没一个能用的!

单纯 include 出现
No direct script access allowed

遮蔽掉 if (! defined ( 'BASEPATH' )) 出现
Fatal error: Call to undefined function get_instance() in D:\AppServ\www\Chinese.php on line 33

再遮蔽掉 function Chinese 直接调用 echo $x->initial("欢迎"); 结果出现 hy 两个字母

什么状况啊现在!谁来帮个手!快被搞疯了...
发表于 2010-5-16 23:44:22 | 显示全部楼层
回复 7# wtf888


    我不知道楼上看没看过 CI 手册,CI 手册上说的很清楚,如何使用类库。我帮楼上找来了,希望你仔细看看。
http://codeigniter.org.cn/user_g ... ting_libraries.html
CI 不能直接 include 类库,请按照手册来使用。
发表于 2010-5-17 00:38:44 | 显示全部楼层
抱歉,若没安装 CI 是否就无法使用了呢?

不知道是否有单纯 PHP 环境使用的方式?
发表于 2010-5-17 00:41:28 | 显示全部楼层
回复 9# wtf888


    本类只适用于 CI,非 CI 环境不能使用。
如果要放在纯 PHP 环境,需要修改源码,你分析一下源码,应该很容易改吧?(就只有三个函数而已,有 PHP 基础应该会修改)

本版积分规则