<?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');
?>