$title="我想在新闻里显示出来的标题只显示15个字如果大如果大";
$showtitle=(strlen($title)>15)?(mb_substr($title,0,15)):$title;
//最好不要用substr

解决方案 »

  1.   

    <?
    /**
     * replace function substr(),support Chinese 
     * 逐一的检查字符的accii码,如当前的字符>128,跳过下一个,检查下下一个,即两个连续的大于>128的字符作一个字符算 
     */ 
    function substrGB($str,$len,$start=0,$default=0)
    {
    $strlen=strlen($str); 
    for($i=0;$i<$strlen;$i++)
    {
    if($i>=$start&&$i<($start+$len))
    {
    if(ord(substr($str,$i,1))>0xa1) 
    $tmpstr.=substr($str,$i,2); 
    else $tmpstr.=substr($str,$i,1);
    } if(ord(substr($str,$i,1))>0xa1)$i++;
    }
    if(substr($tmpstr,-1)=="?")$tmpstr=substr($tmpstr,0,-1);
    if($strlen>strlen($tmpstr) and $default=1)$tmpstr.="......";

    return $tmpstr; 
    }$title = "洒家看来发挥撒赖看法按时开会反对卡了解法防撒发撒谎浪费挥洒法";echo substrGB($title,30);
    ?>
      

  2.   

    http://www.csdn.net/Expert/TopicView1.asp?id=671833看看这篇帖子啊~:)