php指定字符串utf-8,php中截取字符串支持utf-8

截取字符串

$string="2006年4月我又长大了一岁!";

echosubstr($string,1)."...";

//截取字符串

functionSubstrGB($in,$num)

{

$pos=0;

$out="";

while($pos

{

$c=substr($in,$pos,1);

if($c=="n")break;

if(ord($c)>128)

{

$out.=$c;

$pos++;

$c=substr($in,$pos,1);

$out.=$c;

}

else

{

$out.=$c;

}

$pos++;

if($pos>=$num)break;

}

return$out;

}

echoSubstrGB($string,8);

?>

/***************************************************************************

*cut_string.php

*------------------------------

*Date:Jul16,2005

*Copyright:none

*Mail:

*

*作用:截取中文字符.

*

*

***************************************************************************/

functioncut_str($string,$sublen,$start=0,$code='UTF-8')

{

if($code=='UTF-8')

{

$pa="/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";

preg_match_all($pa,$string,$t_string);

if(count($t_string[0])-$start>$sublen)returnjoin('',array_slice($t_string[0],$start,$sublen))."...";

returnjoin('',array_slice($t_string[0],$start,$sublen));

}

else

{

$start=$start*2;

$sublen=$sublen*2;

$strlen=strlen($string);

$tmpstr='';

for($i=0;$i

{

if($i>=$start&&$i

{

if(ord(substr($string,$i,1))>129)$tmpstr.=substr($string,$i,2);

else$tmpstr.=substr($string,$i,1);

}

if(ord(substr($string,$i,1))>129)$i++;

}

if(strlen($tmpstr)

return$tmpstr;

&

nbsp;}

}

echo"
".cut_str($string,8,$start=0,$code='sdf');

?>

您可能感兴趣的文章:php从右向左/从左向右截取字符串的实现方法php截取字符串并以零补齐str_pad()函数PHP截取字符串专题集合PHP截取字符串函数整理(支持gb2312和utf-8)PHP截取字符串分别适合GB2312和UTF8编码情况PHPsubstr截取字符串出现乱码问题解决方法[utf8与gb2312]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值