收藏本页 | 网站地图 | 投稿指南
 
 
当前位置:首页 >> 学院首页 >> 程序开发 >> PHP >>

简体中文与繁体中文互转的PHP函数

放大字体  缩小字体  At: 2005-10-01 07:21  By: master8 转载 来源: 互联网
简体中文转换为繁体中文的PHP函数
<? 
function isgb($code) 

if (strlen($code)>=2) 

$code=strtok($code,""); 
if ((ord($code[0]) < 161)||(ord($code[0]) >= 247)) 

return (0); 

else 

if ((ord($code[1]) <= 161)||(ord($code[1]) >= 254)) 

return (0); 

else 

return (1); 



else 

return (1); 



function gboffset($code) 

if (strlen($code) >= 2) 

$code=strtok($code,""); 
return ((ord($code[0]) - 161) * 94 + (ord($code[1]) - 161)); 

else 

return(-1); 



function wordtostring($code) 

return (chr(hexdec(substr($code,0,2))).chr(hexdec(substr($code,2,2)))); 


function gbtobig5($code) 

include "data_gb.php"; 
$output=""; 
$length=strlen($code); 
$code=strtok($code,""); 
$idx=0; 
while ($idx < $length) 

$tmpStr=$code[$idx].$code[$idx+1]; 

if (isgb($tmpStr)) 

$offset=gboffset($tmpStr); 
if (($offset >= 0)||($offset <= 8177)) 

$output.=wordtostring($gborder[$offset]); 
$idx++; 

else 

$output.= $code[$idx]; 


else 

$output.= $code[$idx]; 

$idx++; 

return ($output); 
}; 
?> 


繁体中文转换为简体中文的PHP函数

<? 
function isbig5($code) 

if (strlen($code)>=2) 

$code=strtok($code,""); 

if (ord($code[0]) < 161) 

return (0); 

else 

if (((ord($code[1]) >= 64)&&(ord($code[1]) <= 126))||((ord($code[1]) >= 161)&&(ord($code[1]) <= 254))) 

return (1); 

else 

return (0); 



else 

return (0); 



function big5offset($code) 

if (strlen($code) >= 2) 

$code=strtok($code,""); 
if ((ord($code[1]) >= 64)&&(ord($code[1]) <= 126)) 

return ((ord($code[0]) - 161) * 157 + (ord($code[1]) - 64)); 

if ((ord($code[1]) >= 161)&&(ord($code[1]) <= 254)) 

return ((ord($code[0]) - 161) * 157 + 63 + (ord($code[1]) - 161)); 


return (-1); 


function wordtostring($code) 

return (chr(hexdec(substr($code,0,2))).chr(hexdec(substr($code,2,2)))); 


function big5togb($code) 

include "data_big5.php"; 
$output=""; 
$length=strlen($code); 
$code=strtok($code,""); 
$idx=0; 
while ($idx < $length) 

$tmpStr=$code[$idx].$code[$idx+1]; 

if (isbig5($tmpStr)) 

$offset=big5offset($tmpStr); 
if (($offset >= 0)||($offset <= 14757)) 

$output.=wordtostring($big5order[$offset]); 
$idx++; 

else 

$output.= $code[$idx]; 


else 

$output.= $code[$idx]; 

$idx++; 

return ($output); 

?> 
 






         









 
Google
论坛精华  
 
 
  ©2005-2008 站长吧 Master8.NET All Rights Reserved 陕ICP备05010609号