在织梦cms中使用繁体转简体的函数BIG5ToGB来替换字特定符串中包

在采集数据的时候,发现如果采集对象中存在繁体字,无论是采集还是后台编辑添加,都无法完成,相关字符串都会在繁体字出被自动截断,有点惹人恼。
更烦恼的是调用:charset.helper.php,中的函数big52gb,竟然无法转换,不知道是big5-gb.dat库(这个库,打开后很乱)的问题,还是big52gb函数的问题,反正是无法实现替换功能。
如果你也遇到了这个问题,那么,就继续往下看:

为了解决这个问题,我们新写个简单的转换函数,以及一个简单的简体繁体字符库:

function BIG5ToGB($Text){$filename = “/very68.com.big5.gb.dat”;$fp = fopen($filename, “rb”);$BIG5_DATA = fread($fp,filesize($filename));fclose($fp);$BIG5_STR = explode(‘$$’,$BIG5_DATA);//新增过滤后判断,解决遇到汉字与字母混排替换出错问题$FilterText = preg_replace(“/-|_|/|[|]|(|)|{|}|./”,”,$Text);$FilterText = preg_replace(“/[0-9]|[a-z]/i”,”,$FilterText);for($i=0;$i<count($BIG5_STR);$i++){$BIG5_iSTR = explode(‘$’,$BIG5_STR[$i]);if(strstr($FilterText,$BIG5_iSTR[0])){$Text = str_replace($BIG5_iSTR[0],$BIG5_iSTR[1],$Text);}else{continue;}}return $Text;}

其中需要的简体繁体字字库的文件:very68.com.big5.gb.dat,是存放简体字和繁体字的对照表,格式如下:

“ $贼$$$乱$$$师$$$个 ”

字符串长度随意,只要是你需要替换的,你都可以加进来[ 如果您要现成的very68.com.big5.gb.dat字库,就请在原文评论处留下邮箱,24小时内发给您 ]。

追加说明:繁体字库,昨天抽了半天时间终于编辑完毕,有需要的兄弟姐妹请留下您的邮箱即可!
2013/08/08日修正,解决替换部分字母与汉字混排时替换出错问题!
再次声明:本函数主要是解决字符串部分替换的问题,真要用于全文替换,请您留言,俺再给你找解决方案。

举个应用实例吧:

假如说您copy的文章中既含有繁体字,又含有简体字,那么要转换为简体的话,那么就可以稍微修改下article_add.php,

找到:

//处理body字段自动摘要、自动提取缩略图等$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);修改为://处理body字段自动摘要、自动提取缩略图等$body = BIG5ToGB($body); //就是增加了一句过滤而已$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);

支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论