PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » PHP资源共享 » 简繁转换的程序
本页主题: 简繁转换的程序 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

自由的龙

该用户目前不在线
级别: 中级程序员
精华: 1
发帖: 1264
威望: 1267 点
金钱: 12660 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-04-16
最后登录:2006-06-27

简繁转换的程序


<?php
/**
*中速版,中等内存使用,使用于一般需求或有大量重复字的大段文本
*@text:待转换的字符串
*@table_file:转换映射表文件名
*/
function encode_trans1($text,$table_file='gb2big5') {
  $fp = fopen($table_file.'.table', "r");
  $cache = array();
  $max=strlen($text)-1;
  for($i=0;$i<$max;$i++) {
    $h=ord($text[$i]);
    if($h>=160) {
        $l=ord($text[$i+1]);
        if($h==161 && $l==64) {
          $text[$i]=" ";
        } else{
          $cut = substr($text,$i,2);
          if(!$cache[$cut]) {
            fseek($fp,($h-160)*510+($l-1)*2);
            $cache[$cut] = fread($fp,2);
          }
          $text[$i] = $cache[$cut][0];
          $text[++$i] = $cache[$cut][1];
        }
    }
  }
  fclose($fp);
  return $text;
}

/**
*低速版,最低内存使用,使用于少量字符时
*@text:待转换的字符串
*@table_file:转换映射表文件名
*/
function encode_trans2($text,$table_file='gb2big5') {
  $fp = fopen($table_file.'.table', "r");
  $max=strlen($text)-1;
  for($i=0;$i<$max;$i++) {
    $h=ord($text[$i]);
    if($h>=160) {
        $l=ord($text[$i+1]);
        if($h==161 && $l==64) {
          $gb=" ";
        }else{
          fseek($fp,($h-160)*510+($l-1)*2);
          $gb=fread($fp,2);
        }
        $text[$i]=$gb[0];
        $text[$i+1]=$gb[1]; $i++;
        }
    }
  fclose($fp);
  return $text;
}
/**
*高速版,最高内存使用,使用于大段文本时
*@text:待转换的字符串
*@table_file:转换映射表文件名
*/
function encode_trans3($text,$table_file='gb2big5') {
  $fp = fopen($table_file.'.table', "r");
  $str = fread($fp,strlen($table_file.'.table'));
  fclose($fp);
  $max=strlen($text)-1;
  for($i=0;$i<$max;$i++) {
    $h=ord($text[$i]);
    if($h>=160) {
        $l=ord($text[$i+1]);
        if($h==161 && $l==64) {
          $text[$i]=' ';
          $text[++$i]=' ';
        }else{
          $pos = ($h-160)*510+($l-1)*2;
          $text[$i]=$str[$pos];
          $text[++$i]=$str[$pos+1];
        }
    }
  }
  return $text;
}
?>
顶端 Posted: 2006-04-19 15:35 | [楼 主]
ok888ok



该用户目前不在线
级别: 新手上路
精华: 0
发帖: 10
威望: 11 点
金钱: 100 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-08-31
最后登录:2006-08-31


路过顶一下。。。
顶端 Posted: 2006-08-31 23:17 | 1 楼
jallin

该用户目前不在线
级别: 新手上路
精华: 0
发帖: 9
威望: 10 点
金钱: 90 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-10-23
最后登录:2006-11-14


这个满不错的吗!~
我收下了~!
顶端 Posted: 2006-10-25 18:58 | 2 楼
wubin510824



该用户目前不在线
级别: 新手上路
精华: 0
发帖: 8
威望: 9 点
金钱: 80 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-06-14
最后登录:2006-12-22


顶端 Posted: 2006-12-06 11:08 | 3 楼
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » PHP资源共享

时:11-24 02:40 Copyright © 2006 phpwhy.com 权
ICP05060669

曳息 -