文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php中文处理函数

php中文处理函数

时间:2007-02-18  来源:PHP爱好者

php使用ISO-8859-1处理字符串,也就是以单字节处理字符串。中文码属于多字节字符,在使用substr,
strlen,str_peplace等函数时很容易产生错误,处理中文特殊操作,必须使用一组中文处理函数。下面是
GBK的substr,strlen操作函数,前者并不像php的substr一样可以使用负数作为start,lenght.希望大家
来不断完善这些函数,达到高效实用的程度。
CODE:
[复制到剪切板]
<? 
/* 

*/ 
//gbk str handle 
function gbk_substr(&$str,$start,$length=-1) 

if($length==0) return ""; 
if($start<0) $start=0; 
for($i=0;$i<$start;$i++) 

if(ord(substr($str,$i,1))>=0x81) 

$start++; 
$i++; 


if($start>gbk_strlen($str)) return ""; 
$ss=""; 
if($length==-1) 

$ss=substr($str,$start); 

else 

echo "leghth=".$length."n"; 
for($i=$start;$i<$start+$length;$i++) 

if(ord(substr($str,$i,1))>=0x81) 

$ss.=substr($str,$i,2); 
$length++; 
$i++; 

else 

$ss.=substr($str,$i,1); 



return $ss; 
}
function gbk_strlen(&$str) 

$len=strlen($str); 
$l=0; 
for($i=0;$i<$len;$i++) 

if(ord(substr($str,$i,1))>=0x81) $i++; 
$l++; 

return $l; 
}
function gb2312_strlen(&$str) 

$len=strlen($str); 
$l=0; 
for($i=0;$i<$len;$i++) 

if(ord(substr($str,$i,1))>=0xa1) $i++; 
$l++; 

return $l; 
}
?>  php爱好者站 http://www.phpfans.net 网页制作|网站建设|数据采集.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载