function substring($str, $start, $length){ //比较好用字符串截取函数$len = $length;if($length < 0){$str = strrev($str);$len = -$length;}$len= ($len < strlen($str)) ? $len : strlen($str);for ($i= $start; $i < $len; $i ++){ if (ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else { $tmpstr .= substr($str, $i, 1); }}if($length < 0) $tmpstr = strrev($tmpstr);return $tmpstr;}
哈哈,不过现在用扩展函数了!
<?php$str = '我是一串比较长的中文-www.ooso.net';echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');echo "<br>";echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');?>

mb_substr:我是一串比较
mb_strcut:我是
从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的征象。