文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>简繁转换的程序

简繁转换的程序

时间:2007-02-18  来源:PHP爱好者

CODE:
[复制到剪切板]
<?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;
}
?>  php爱好者站 http://www.phpfans.net php动态|php基础|php进阶|php模板.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载