我的数据库有是个字段其中有六个市长度超过100的,如果在页面显示,排版不好排,所以想截取这六个字段的钱十个字符其他的用....表示    
大家用什么好的想法吗   而且我在查询数据库是是全部查询  数据放在集合中
要怎么写才能简单一些

解决方案 »

  1.   

    怕中文出问题的话,用mbstring的。
      

  2.   

    function getAll(){
    $business = D('business');
    $this->count();
    $list=$business->select();
    //用视图查之后放到list中 页面输出
    print_r($list[title]);                                这一步不对吗?为什么页面不显示值呢
    if(mb_strlen($list[title]) < 6)
    {
    $data = $list[title];
    }
    else
    {
    $list[title]= mb_substr($title , 0, 10, 'utf-8').'...';
    $data = $list[title];
    }
    $this->assign('list',$data);
    $this->display('getAll');
    }
      

  3.   

    PHP中  怎么输出集合中的某一个值
      

  4.   


    //前几天项目用到的,自己随便写的一个函数
    function cutString($string='',$length=60,$endString='...')
    {
        $string = trim($string);
        if('' == $string) {
            return '';
        }    $oldLength = strlen($string);
        $newString= array();
        for($i=0;$i<$length;$i++) {
            $tmpString = substr($string, 0, 1);
            if(ord($tmpString)>127) {
                $i++;
                if($i<$length) {
                    $newString[] = substr($string, 0, 3);
                    $string = substr($string,3);
                }
            }
            else {
                $newString[] = substr($string, 0, 1);
                $string = substr($string, 1);
            }
        }    $newString = implode('',$newString);    return strlen($newString) < $oldLength ? $newString.$endString : $newString;
    }
      

  5.   

    中文的话用这个: function getSubStr($s)
       {
         $substr=strlen($s)>20?substr(0,20,$str).chr(0).'...':$s;
         return $substr; // 20表示10个中文
       }如果中英混合的话就用ASCII码值判断下英文取多少,中文取多少
      

  6.   

    方法调用$this->cut_str($list[0]['title']);function cut_str($sourcestr, $cutlength = 80, $etc = '...')
    {
    $returnstr = '';
    $i = 0;
    $n = 0.0;
    $str_length = strlen($sourcestr); //字符串的字节数
    while ( ($n<$cutlength) and ($i<$str_length) )
    {
       $temp_str = substr($sourcestr, $i, 1);
       $ascnum = ord($temp_str); //得到字符串中第$i位字符的ASCII码
       if ( $ascnum >= 252) //如果ASCII位高与252
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 6); //根据UTF-8编码规范,将6个连续的字符计为单个字符
        $i = $i + 6; //实际Byte计为6
        $n++; //字串长度计1
       }
       elseif ( $ascnum >= 248 ) //如果ASCII位高与248
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 5); //根据UTF-8编码规范,将5个连续的字符计为单个字符
        $i = $i + 5; //实际Byte计为5
        $n++; //字串长度计1
       }
       elseif ( $ascnum >= 240 ) //如果ASCII位高与240
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 4); //根据UTF-8编码规范,将4个连续的字符计为单个字符
        $i = $i + 4; //实际Byte计为4
        $n++; //字串长度计1
       }
       elseif ( $ascnum >= 224 ) //如果ASCII位高与224
       {
        /**
         * 进入它
         * Enter description here ...
         * @var unknown_type
         */
        $returnstr = $returnstr . substr($sourcestr, $i, 3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
        $i = $i + 3 ; //实际Byte计为3
        $n++; //字串长度计1
        echo "$returnstr";
       }
       elseif ( $ascnum >= 192 ) //如果ASCII位高与192
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
        $i = $i + 2; //实际Byte计为2
        $n++; //字串长度计1
       }
       elseif ( $ascnum>=65 and $ascnum<=90 and $ascnum!=73) //如果是大写字母 I除外
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 1);
        $i = $i + 1; //实际的Byte数仍计1个
        $n++; //但考虑整体美观,大写字母计成一个高位字符
       }
       elseif ( !(array_search($ascnum, array(37, 38, 64, 109 ,119)) === FALSE) ) //%,&,@,m,w 字符按1个字符宽
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 1);
        $i = $i + 1; //实际的Byte数仍计1个
        $n++; //但考虑整体美观,这些字条计成一个高位字符
       }
       else //其他情况下,包括小写字母和半角标点符号
       {
        $returnstr = $returnstr . substr($sourcestr, $i, 1);
        $i = $i + 1; //实际的Byte数计1个
        $n = $n + 0.5; //其余的小写字母和半角标点等与半个高位字符宽...
       }
    }
    if ( $i < $str_length )
    {
       $returnstr = $returnstr.$etc; //超过长度时在尾处加上省略号
    }
    return $returnstr;
    }大家帮我看看哪错了  为什么页面的值不输出