濮阳杆衣贸易有限公司

主頁 > 網(wǎng)站建設 > 建站知識 > 在織夢cms中使用繁體轉(zhuǎn)簡體的函數(shù)BIG5ToGB來替換字

在織夢cms中使用繁體轉(zhuǎn)簡體的函數(shù)BIG5ToGB來替換字

POST TIME:2019-05-22 23:55

在采集數(shù)據(jù)的時候,發(fā)現(xiàn)如果采集對象中存在繁體字,無論是采集還是后臺編輯添加,都無法完成,相關字符串都會在繁體字出被自動截斷,有點惹人惱。
更煩惱的是調(diào)用:charset.helper.php,中的函數(shù)big52gb,竟然無法轉(zhuǎn)換,不知道是big5-gb.dat庫(這個庫,打開后很亂)的問題,還是big52gb函數(shù)的問題,反正是無法實現(xiàn)替換功能。
如果你也遇到了這個問題,那么,就繼續(xù)往下看:

為了解決這個問題,我們新寫個簡單的轉(zhuǎn)換函數(shù),以及一個簡單的簡體繁體字符庫:

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,是存放簡體字和繁體字的對照表,格式如下:

“ 賊$賊$$亂$亂$$師$師$$個$個 ”

字符串長度隨意,只要是你需要替換的,你都可以加進來[ 如果您要現(xiàn)成的very68.com.big5.gb.dat字庫,就請在原文評論處留下郵箱,24小時內(nèi)發(fā)給您 ]。

追加說明:繁體字庫,昨天抽了半天時間終于編輯完畢,有需要的兄弟姐妹請留下您的郵箱即可!
2013/08/08日修正,解決替換部分字母與漢字混排時替換出錯問題!
再次聲明:本函數(shù)主要是解決字符串部分替換的問題,真要用于全文替換,請您留言,俺再給你找解決方案。

舉個應用實例吧:

假如說您copy的文章中既含有繁體字,又含有簡體字,那么要轉(zhuǎn)換為簡體的話,那么就可以稍微修改下article_add.php,

找到:

//處理body字段自動摘要、自動提取縮略圖等
$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);

修改為:

//處理body字段自動摘要、自動提取縮略圖等
$body = BIG5ToGB($body); //就是增加了一句過濾而已
$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
江门市| 仁寿县| 西充县| 沽源县| 鄂伦春自治旗| 武功县| 岑溪市| 冕宁县| 南漳县| 上杭县| 城口县| 广昌县| 高邮市| 化隆| 蒙阴县| 普洱| 苏尼特右旗| 普格县| 霍州市| 封丘县| 鹤庆县| 双鸭山市| 镇远县| 嘉峪关市| 抚顺市| 肥东县| 江西省| 武汉市| 辰溪县| 奉新县| 和龙市| 鸡西市| 定襄县| 凌海市| 尖扎县| 纳雍县| 临安市| 大埔县| 崇文区| 深州市| 锡林郭勒盟|