2009年3月21日 星期六

字串截取,亂碼

字串截取,通常我們會用在標題列過長時,截取部份
字串後面再加"...",來當部份說明,而當截取字串時
會遇到一些編碼原則,BIG5,UTF8 或是全形半形之間的亂碼問題...

各種編碼及全形半形截取字串的方式如下..

此方法適用於網頁編碼為BIG5

$len = 30;
echo strlen($news_title)<=$len ? $news_title : (substr($news_title,0,$len).chr(0)."....");
?>


此方法適用於網頁編碼為UTF8

function csubstr($text, $limit) {
$s = ';
for($i=0;$i< $limit-3;$i++) {
$s .= ord($text[$i])>127 ? $text[$i].$text[++$i].$text[++$i] : $text[$i];
}
$s = $s."...";
return $s;
}


此方法適用於全形字元的處理方式

function ChgTitle($news_title)
{
$length = 30;
if (strlen($news_title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i++)
if (ord($news_title[$i]) > 128) $temp++;
if ($temp%2 == 0)
$news_title = substr($news_title,0,$length)."...";
else
$news_title = substr($news_title,0,$length+1)."...";
}
return $news_title;
}

沒有留言:

##EasyReadMore##