若使用UTF-8編碼,可用下面的Funtion,可避免中文字被切掉一半。
複製程式
<?
function cutstr($string, $length) {
preg_match_all("/[\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]/", $string, $info);
for($i=0; $i<count($info[0]); $i++) {
$wordscut .= $info[0][$i];
$j = ord($info[0][$i]) > 127 ? $j + 2 : $j + 1;
if ($j > $length - 3) {
return $wordscut."…";
}
}
return join('', $info[0]);;
}
//使用範例:
$text = "撰寫網誌內容記錄生活感想、嗜好、心情故事、或珍貴回憶。";
$text = cutstr($text,20); //(原字串,截取長度)
echo "$text";
?>