POST TIME:2019-05-22 23:55
在采集數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)如果采集對(duì)象中存在繁體字,無論是采集還是后臺(tái)編輯添加,都無法完成,相關(guān)字符串都會(huì)在繁體字出被自動(dòng)截?cái)?,有點(diǎn)惹人惱。
更煩惱的是調(diào)用:charset.helper.php,中的函數(shù)big52gb,竟然無法轉(zhuǎn)換,不知道是big5-gb.dat庫(這個(gè)庫,打開后很亂)的問題,還是big52gb函數(shù)的問題,反正是無法實(shí)現(xiàn)替換功能。
如果你也遇到了這個(gè)問題,那么,就繼續(xù)往下看:
為了解決這個(gè)問題,我們新寫個(gè)簡單的轉(zhuǎn)換函數(shù),以及一個(gè)簡單的簡體繁體字符庫:
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);
//新增過濾后判斷,解決遇到漢字與字母混排替換出錯(cuò)問題
$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,是存放簡體字和繁體字的對(duì)照表,格式如下:
“ 賊$賊$$亂$亂$$師$師$$個(gè)$個(gè) ”
字符串長度隨意,只要是你需要替換的,你都可以加進(jìn)來[ 如果您要現(xiàn)成的very68.com.big5.gb.dat字庫,就請(qǐng)?jiān)谠脑u(píng)論處留下郵箱,24小時(shí)內(nèi)發(fā)給您 ]。
追加說明:繁體字庫,昨天抽了半天時(shí)間終于編輯完畢,有需要的兄弟姐妹請(qǐng)留下您的郵箱即可!
2013/08/08日修正,解決替換部分字母與漢字混排時(shí)替換出錯(cuò)問題!
再次聲明:本函數(shù)主要是解決字符串部分替換的問題,真要用于全文替換,請(qǐng)您留言,俺再給你找解決方案。
舉個(gè)應(yīng)用實(shí)例吧:
假如說您copy的文章中既含有繁體字,又含有簡體字,那么要轉(zhuǎn)換為簡體的話,那么就可以稍微修改下article_add.php,
找到:
//處理body字段自動(dòng)摘要、自動(dòng)提取縮略圖等
$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);
修改為:
//處理body字段自動(dòng)摘要、自動(dòng)提取縮略圖等
$body = BIG5ToGB($body); //就是增加了一句過濾而已
$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);