我需要一个php截取字符串函数,可以指定从哪开始,截取几个,支持不同编码如题 谢谢了

 我来答
纯良又不朽灬彩霞4580
2014-06-30 · TA获得超过135个赞
知道答主
回答量:157
采纳率:100%
帮助的人:73.5万
展开全部
<?php /** * utf-8、gb2312都支持的汉字截取函数 * * @param string $string * @param integer $sublen * @param integer $start * @param string $code * @return string */ function cut_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) return join('',array_slice($t_string[0],$start,$sublen))."..."; return join('',array_slice($t_string[0],$start,$sublen)); } else { $start=$start*2; $sublen=$sublen*2; $strlen=strlen($string); $tmpstr=''; for($i=0;$i<$strlen;$i++) { if($i>=$start&&$i<($start+$sublen)) { 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)<$strlen ) $tmpstr.="..."; return $tmpstr; } } $str="新程php培训"; echo cut_str($str,8,0,'gb2312'); ?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式