substr截取中方出现乱码,自定义函数截取解决
时间:2010-07-09 来源:本站原创 作者:yuge 浏览次数:
先看一下为什么substr截取中文会出现乱码,因为中文占两个字节位,然后我们的文字中间有英文和数字,即使我们取偶数子串也不能解决乱码问题(我们不能保证,每次中间英文或数字字数是一样的)。
然后介绍两个php函数:
substr(string,start,length)
参数一是字符串,参数二是起始位置,参数三取子字符串长度
ord(string)
参数一是字符串,它的作用是函数返回字符串第一个字符的 ASCII 值。
下面是自定义函数sub_str
function sub_str($text,$length)
{
for ($i=0;$i <$length;$i++)
{
$chr = substr($text,$i,1);
if (ord($chr) > 0x80)//字符是中文
{
$length++; //是中文的话长度就增加
$i++;
}
}
$str = substr($text, 0, $length);
return $str;
}
最终依靠这个自定义函数解决substr截取中文字符出现乱码问题。
版权归原作者所有,内容仅供参考学习,不得用于商业用途。