我的PHP代碼中有一些字符串需要被截斷,如果它們太長。如何截斷PHP中的UTF8字符串?
例如,如果一個文字是這樣的:
您好,我想告訴你多麼美妙,這是。
它將與此替換它:
您好,我想......
對於我做一個簡單的substr
。問題在於,在UTF8中,一些字符實際上是兩個字符長。而且我在中間切斷了一個字符時遇到了一些問題:例如,當我嘗試將修改過的字符串插入到數據庫中時,它會崩潰。
這裏是我當前的功能:
static function short($string, $max = 255){
if(strlen($string) >= $max){
$string = substr($string, 0, $max - 5).'...';
} return $string;
}
會有人知道一種方法,使這一功能工作,即使是UTF8字符?
爲什麼'$最大 - 5'? – deceze
看看'https://api.drupal.org/api/drupal/includes!unicode.inc/function/truncate_utf8/7' –
[UTF-8 compatible truncate function](http:// stackoverflow .com/questions/6288875/utf-8-compatible-truncate-function) – user