2009/08/04

【PHP】正確的裁切 UTF-8 字串

(撰寫於 2007-03-29 )

當首頁的新聞標題太長,僅需要抓取部份字串的時候,會發現使用 substr( ) 常常會讓最後一個字破損。

這時候可以用 mb_substr ( $str, $start , $length , $encoding ) 來代替 substr( )
如果你的網頁編碼是 UTF-8, $encoding 參數就填上 UTF-8,其他語系亦然


舉例來說....

網頁編碼:UTF-8
原始標題:2007寒假心靈成長小學
抓取 :前6個字元
使用 substr(),抓到的會是 "2007寒假�"
而使用 mb_substr,就可以正確的抓到 "2007寒假"

//去除html符號
$Title=strip_tags($Title);
$Title=str_replace(' ','',$Title);
if(mb_strlen($Title,'utf-8')>6)
{
$Title=mb_substr($Title,0,6,'utf-8').'..';
}

沒有留言:

張貼留言