中易网

lt;原创>截取标题前几个汉字时怎样使1汉字=2字符

答案:1  悬赏:20  
解决时间 2021-01-08 11:09
lt;原创>截取标题前几个汉字时怎样使1汉字=2字符
最佳答案
一般英文字符占一个字节,汉字占两个字节,有这么一种思路,在截取字符串的时候逐个判断要截取的字符是汉字还是英文字符,这样就不会出现错误了,下边给你帖一个我写的程序,你自己看下


无标题文档




function msubstr($str,$start,$len){

}
?>


function msubstr2($str,$start,$len){
$t = explode(" ",microtime());
$tt = round($t[0],5);
//将字符串中每个字符分开 并放到数组中
$str_arr = array();
$j = 1;
for($i=0;$i if(ord(substr($str,$i,1))>0xa0){ //说明是汉字 则需要一次截取3个字符
$str_arr[$j] = substr($str,$i,3);
$i = $i+2;
}else{
$str_arr[$j] = substr($str,$i,1);
}
$j++;
}
print_r($str_arr);
for($i=$start;$i<=$len+$start-1;$i++){
if($i>count($str_arr)){ //判断是否超出数组最大长度 如果是 则结束循环
break;
}
$str_temp .= $str_arr[$i];
}
$t = explode(" ",microtime());
$ttt = round($t[0],5);
return $ttt-$tt;
//return $str_temp;
}
function msubstr1($str,$start,$len){
$t = explode(" ",microtime());
$tt = round($t[0],5);
$j = 0; //记录截取的字符串的字符位置
$s = 0; //记录已经截取的字符长度
$str_temp = "";//记录截取的字符串
$k = strlen($str);
for($i=0;$i<$k;){//循环全部字
if($s>=$len) break;//如果已经截取的字符串长度超过要截取的长度 跳出循环 返回结果
if(ord(substr($str,$i,1))>0xa0){ //判断是否为汉字
if($j+1>=$start){//如果当前截取字符位置大于等于要截取的字符串的开始位置并且当前已经截取的字符长度还没有超出要截取的字符串的长度 则将此字符为要截取的字符
$str_temp .= substr($str,$i,3);
$s++;//已经截取的字符串长度加1
}
$j++;//当前截取的字符串的位置加1
$i+=3;//确定为汉字 在utf8编码下占三个英文字符的长度 则需要记录三个字符
}else{
if($j+1>=$start){
$str_temp .= substr($str,$i,1); //截取英文字符
$s++;//已经截取的字符串长度加1
}
$j++;//当前截取的字符串的位置加1
$i++;//非汉字字符占一个字符的长度
}
}
$t = explode(" ",microtime());
$ttt = round($t[0],5);
//return $ttt-$tt;
return $str_temp;
}
if($_POST[sub]){
echo msubstr1($_POST[str],$_POST[str_start],$_POST[str_len]);
}
?>


评论 | 0 0

举报| 2012-06-04 14:15yangyze | 七级
用php的
string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

前提是php要安装 mb扩展
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
观音灵签52签是什么意思 观音灵签第52签解签
仙剑奇侠传5青木居石像怎么摆
金龙五金水暖商店地址好找么,我有些事要过去
北京市平谷区新平东路UCC专卖店地址在什么地
西城书院地址有知道的么?有点事想过去
怀化南站和怀化站区别?
求千古咏花名句
剑灵监狱没隐身怎么打
想一个和二有关的双人组合名称,最好古风一点
2016QQ中秋节QQ祝福语哪里有
怎么去除相同文本的内容 易语言
《致良知》巜寄李道夫》译文
对我的一眼感觉怎么样?男人们有没有一见种情
讨论,C语言怎么去写大型程序
什么叫按序时比例发放工资?
推荐资讯
光强为Io的自然光通过偏振片后为何光强变为原
________ as he was, he looked quite calm i
NHYBSDFTGYH什么意思
家常美味在哪里啊,我有事要去这个地方
小丽攒钱想买4本一套的《百科知识》丛书,一
孩子上高三了,近几个月来发现孩子突
文字笑话,要那种"什么字"对"什么字"说:
家政保洁(天坛西路36号附近家政保洁)怎么去啊
求少女。妇人。白色。洁白。txt
啦啦德玛西亚中亚索出现在第几集
女友坚决分手会回头吗
关于茂盛的成语
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?