用了幾個取字符函數mb_substr之類的都不怎麼好用,還是這個比較好用一點。
[php]
/**
* 截斷函數,防止亂碼
*
*
*/
function z_substr($sourcestr='',$i=0,$cutlength=150,$endstr='')
{
$str_length=strlen($sourcestr);//字符串的字節數
while (($n<$cutlength) and ($i<=$str_length))
{
$temp_str=substr($sourcestr,$i,1);
$ascnum=Ord($temp_str);//ascii碼
if ($ascnum>=224)
{
$returnstr=$returnstr.substr($sourcestr,$i,3);
$i=$i+3;
$n++;
}elseif ($ascnum>=192)
{
$returnstr=$returnstr.substr($sourcestr,$i,2);
$i=$i+2;
$n++;
}else
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1;
$n=$n+0.5;
}
}
if($i<$str_length)$returnstr.=$endstr;
return $returnstr;
}