喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: 看到有人贴简繁转换的程序。。偶也来个  
 
q3boy (q3boy)
版主
Rank: 7Rank: 7Rank: 7
版主



UID 15982
精华 7
积分 1889
帖子 1751
金钱 1819 喜悦币
威望 70
人脉 0
阅读权限 100
注册 2002-8-19
状态 离线
看到有人贴简繁转换的程序。。偶也来个

去年写的。有三种不同算法。适用不同情况。附件为简-繁和繁-简的映射表

<?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;
}
?>
2004-5-15 04:34 PM#1
查看资料  Blog  发短消息  顶部
 
paradis (paradis)
新手上路
Rank: 1
初级会员



UID 28557
精华 0
积分 36
帖子 33
金钱 36 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-5-14
状态 离线
[推荐阅读] 有个分数字段,输出这个字段里分数总和的sql语句是什么
多谢楼主,不过我在使用过程中,还是遇到几个问题,希望不吝赐教.

纯GB码字符串转换的时候,没有什么问题,但是,当用户输入繁体的时候,输出的反而成了乱码了,请问,这是什么原因呢?另外一个问题,当繁体用户在使用搜索的时候,怎么能够将相对应的简体和繁体数据一同检索出来?

希望楼主释义
2004-7-27 08:39 PM#2
查看资料  访问主页  发短消息  QQ  顶部
 
水木 (水木)
中级会员
Rank: 3Rank: 3
中级会员



UID 21816
精华 0
积分 292
帖子 322
金钱 292 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2003-7-19
状态 离线
[推荐阅读] 高手请看看,为什么有这样的错误!!


QUOTE:
最初由 paradis 发布
[B]多谢楼主,不过我在使用过程中,还是遇到几个问题,希望不吝赐教.

纯GB码字符串转换的时候,没有什么问题,但是,当用户输入繁体的时候,输出的反而成了乱码了,请问,这是什么原因呢?另外一个问题,当繁体用户在使用搜索的时候,怎么能够将相对应的简体和繁体数据一同检索出来?

希望楼主释义 [/B]
这个问题提的好.
期待回答!
2004-7-27 08:42 PM#3
查看资料  发短消息  顶部
 
muyan (muyan)
中级会员
Rank: 3Rank: 3
中级会员



UID 28184
精华 0
积分 238
帖子 233
金钱 238 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2004-4-29
状态 离线
[推荐阅读] 论坛cookie与email设置
输入的什么繁体,是big5还是gb的繁体字
2004-7-27 09:41 PM#4
查看资料  发短消息  顶部
 
taomyname (taomyname)
金牌会员
Rank: 6Rank: 6
资深会员



UID 12615
精华 0
积分 1350
帖子 1343
金钱 1350 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2002-2-1
来自 From Guangzhou
状态 离线
[推荐阅读] 请问:iconv怎么转换繁体中文,韩文,日文


QUOTE:
最初由 paradis 发布
[B]多谢楼主,不过我在使用过程中,还是遇到几个问题,希望不吝赐教.

纯GB码字符串转换的时候,没有什么问题,但是,当用户输入繁体的时候,输出的反而成了乱码了,请问,这是什么原因呢?另外一个问题,当繁体用户在使用搜索的时候,怎么能够将相对应的简体和繁体数据一同检索出来?

希望楼主释义 [/B]
你输出的时候也要设置网页为简体或繁体哦!
2004-7-27 09:45 PM#5
查看资料  访问主页  发短消息  顶部
 
剑枫 (雪花)
论坛元老
Rank: 8Rank: 8
欧玛嘎


UID 26144
精华 1
积分 4844
帖子 1718
金钱 4834 喜悦币
威望 10
人脉 0
阅读权限 90
注册 2004-2-14
来自 山东郓城
状态 离线
[推荐阅读] Ntfs文件系统怎么用ghost备份呀?
要输入真繁体

假繁体在??????下会显示为繁体
但是编码改成big5的时候就不行了




在场外支持奥运.....
2004-7-27 10:19 PM#6
查看资料  访问主页  发短消息  QQ  顶部
 
问题多多 (问题多多)
金牌会员
Rank: 6Rank: 6
高级会员


UID 22184
精华 1
积分 1731
帖子 1755
金钱 1721 喜悦币
威望 10
人脉 0
阅读权限 70
注册 2003-8-2
来自 辽宁-沈阳-和平区
状态 离线
[推荐阅读] 一个奇怪的问题:我作的同一php网络系统程序…………………………………………
收收收了



PHP C++ MFC JAVA STRUCS MYSQL APACHE LINUX WINDOWS Freebsd Zend JQuery QA
2004-7-27 10:40 PM#7
查看资料  Blog  发短消息  顶部
 
paradis (paradis)
新手上路
Rank: 1
初级会员



UID 28557
精华 0
积分 36
帖子 33
金钱 36 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-5-14
状态 离线
[推荐阅读] 请教一个使用phplib生成静态页面的问题。
当然是真繁体

你想,既然有繁体显示的需求,就表示有使用big5的用户在使用系统,
那些用户群的输入,全是繁体环境,我曾经为此很头大.
2004-7-28 01:02 AM#8
查看资料  访问主页  发短消息  QQ  顶部
 
paradis (paradis)
新手上路
Rank: 1
初级会员



UID 28557
精华 0
积分 36
帖子 33
金钱 36 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-5-14
状态 离线
[推荐阅读] 大家一定要帮我。
繁體字
2004-7-28 01:04 AM#9
查看资料  访问主页  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.036990 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP