1. 截取GB2312中文字符串
0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr;}$con = "123电话巴萨的sasaS";echo mysubstr($con,4,5);?>
2. 截取utf8编码的多字节字符串
3. UTF-8、GB2312都支持的汉字截取函数
$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 = "abcd需要截取的字符串";echo cut_str($str, 8, 0, 'gb2312');?>
4. BugFree 的字符截取函数
< ?php/*** @package BugFree* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Return part of a string(Enhance the function substr())** @author Chunsheng Wang* @param string $String the string to cut.* @param int $Length the length of returned string.* @param booble $Append whether append "...": false|true* @return string the cutted string.*/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 = "17test.info 走在中国自动化测试的前沿";$Length = "18";$Append = false;echo sysSubStr($String,$Length,$Append);?>