今天是:
设百科问答网为首页|收藏百科问答网|网站地图
百科问答网 - 帮您解决问题,分享成功经验
百科问答网  » 电脑/数码/通讯/互联网 » 编程/开发  » PHP中如何截取UTF-8中文字符串?

PHP中如何截取UTF-8中文字符串?


如果有约200个字(连符号、中、英文)
请问如何截取指定UTF-8中文的字符串?

如要头100个
<?php
$len=100;
$newStr=mb_substr($str,0,$len);
?>

这样有时会有最尾的字截取不完整,请问应该如何做?

谢谢




答案或建议:


方法1:
 
$newStr=mb_substr($str,0,$len, 'utf-8 ');
 
方法2:
 
如果服务器不支持mbstring扩展,就用下面这个函数
function   subString_UTF8($str,   $start,   $lenth)
        {
                $len   =   strlen($str);
                $r   =   array();
                $n   =   0;
                $m   =   0;
                for($i   =   0;   $i   <   $len;   $i++)   {
                        $x   =   substr($str,   $i,   1);
                        $a     =   base_convert(ord($x),   10,   2);
                        $a   =   substr( '00000000 '.$a,   -8);
                        if   ($n   <   $start){
                                if   (substr($a,   0,   1)   ==   0)   {
                                }elseif   (substr($a,   0,   3)   ==   110)   {
                                        $i   +=   1;
                                }elseif   (substr($a,   0,   4)   ==   1110)   {
                                        $i   +=   2;
                                }
                                $n++;
                        }else{
                                if   (substr($a,   0,   1)   ==   0)   {
                                        $r[   ]   =   substr($str,   $i,   1);
                                }elseif   (substr($a,   0,   3)   ==   110)   {
                                        $r[   ]   =   substr($str,   $i,   2);
                                        $i   +=   1;
                                }elseif   (substr($a,   0,   4)   ==   1110)   {
                                        $r[   ]   =   substr($str,   $i,   3);
                                        $i   +=   2;
                                }else{
                                        $r[   ]   =   ' ';
                                }
                                if   (++$m   > =   $lenth){
                                        break;
                                }
                        }
                }
                return   $r;
        }   //   End   subString_UTF8;
}//   End   String
返回的是个数组,显示的join一下:
echo   join( ' ',subString_UTF8($str,   $start,   $lenth));


文章出自:http://www.baikewenda.com/h/1103/a37249.html
精彩推荐

敬请注意:百科问答网内容来源于网络或民间经验收集,仅供参考。其中有关健康疾病方面的内容请务必咨询专业医生或及时到医院治疗。
关于我们 - 广告服务 - 联系我们
百科问答网 Copyright ©2005 - 2011 www.baikewenda.com,All Rights Reserved
辽ICP备10007180号