复制代码 代码如下:
function sysSubStr($string,$length,$append = false)
{
if(strlen($string) <= $length )
{
return $string;
}
else
{
$i = 0;
while ($i < $length)
{
$stringTMP = substr($string,$i,1);
if ( ord($stringTMP) >=224 )
{
$stringTMP = substr($string,$i,3);
$i = $i + 3;
}
elseif( ord($stringTMP) >=192 )
{
$stringTMP = substr($string,$i,2);
$i = $i + 2;
}
else
{
$i = $i + 1;
}
$stringLast[] = $stringTMP;
}
$stringLast = implode("",$stringLast);
if($append)
{
$stringLast .= "...";
}
return $stringLast;
}
}
$string = "简明现代魔法 —— 专注于互联网主流的各种技术";
$length = "27";
$append = true;
echo sysSubStr($string,$length,$append);
// 输出
// 简明现代魔法 —— 专...
?>
截取GB2312中文字符串:
复制代码 代码如下:
//截取中文字符串
function mysubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
?>
截取utf8编码的多字节字符串:
复制代码 代码如下:
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.
'((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>
UTF-8、GB2312都支持的汉字截取函数:
复制代码 代码如下:
/*
Chinese character interception function supported by Utf-8 and gb2312
cut_str(string, interception length, starting length, encoding);
encoding Default is utf-8
Start length defaults to 0
*/
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))."..."; $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string) ;
$tmpstr = '';
for($i=0; $i< $strlen; $i++)
$tmpstr = ''; if($i>=$start && $i< ; ($start+$sublen))
tmpstr.= substr($string, $i, 2); > (Substr ($ String, $ i, 1)) & gt; 129) $ i ++;
}
IF (Strlen ($ tmpstr) & lt; $ strlen) $ tmpstr. > return $tmpstr; 🎜>?>
http://www.bkjia.com/PHPjc/825109.html
www.bkjia.com
true
http: //www.bkjia.com/PHPjc/825109.html
TechArticle
Copy the code as follows: ?php function sysSubStr($string,$length,$append = false) { if( strlen($string) = $length ) { return $string; } else { $i = 0; while ($i $length) { $string...