作者:手机用户2502927665 | 来源:互联网 | 2014-03-29 12:37
求教,如何判断是否是低字节?<?phpheader("content-type:text/html;charset=gbk");$str="j这是ces测试dkfjdksj";function substr_gbk($str,
求教,如何判断是否是低字节?
header("content-type:text/html;charset=gbk");
$str="j这是ces测试dkfjdksj";
function substr_gbk($str,$start,$end)
{
$temp="";
for($i=$start;$i<=$end;$i++)
{
if(ord($str{$i})>0xa0)
{
$temp.=substr($str,$i,2);
$i++;
}else
{
$temp.=substr($str,$i,1);
}
}
return $temp;
}
echo substr_gbk($str,1,10); //从高字节截取正常
echo substr_gbk($str,2,10); //从低字节截取出现乱码
?>
以上代码从高字节截取没有问题,但如果从低字节截取出现乱码
请问有知道如果判断高低字节的办法吗?
------解决方案--------------------本帖最后由 xuzuning 于 2013-10-30 11:08:53 编辑
$str="j这是ces测试dkfjdksj";
function substr_gbk($str,$start,$end)
{
$temp="";
for($i=0; $i<$start; $i++) if(ord($str{$i})>0xa0) $i++; //加上这行
for(;$i<=$end;$i++)
{
if(ord($str{$i})>0xa0)
{
$temp.=substr($str,$i,2);
$i++;
}else
{
$temp.=substr($str,$i,1);
}
}
return $temp;
}
echo substr_gbk($str,1,10); //这是ces测试
echo substr_gbk($str,2,10); //是ces测试