Yii系列總結:截取字符串方法

1.先建立一個文件 Helper.php,內容如下:

class Helper extends CController
{
   public static function truncate_utf8_string($string, $length, $etc = '...')
   {
       $result = '';
       $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8');
       $strlen = strlen($string);
       for ($i = 0; (($i < $strlen) && ($length > 0)); $i++)
       {
       if ($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0'))
           {
           if ($length < 1.0)
               {
           break;
           }
           $result .= substr($string, $i, $number);
           $length -= 1.0;
           $i += $number - 1;
       }
           else
           {
           $result .= substr($string, $i, 1);
           $length -= 0.5;
       }
       }
       $result = htmlspecialchars($result, ENT_QUOTES, 'UTF-8');
       if ($i < $strlen)
       {
       $result .= $etc;
       }
       return $result;
   }
}

2.將Helper.php放進protected\components文件夾下。
這個函數truncate_utf8_string($string, $length, $etc = '...')的3個參數很容易看出來。

使用方法:

Helper::truncate_utf8_string($content,20,false);   //不顯示省略號
   Helper::truncate_utf8_string($content,20);  //顯示省略號

即:'content'=>array(
           'value'=>'Helper::truncate_utf8_string($data->content,40,false)',
       ),
舉個例子。

<?php $this->widget('zii.widgets.grid.CGridView',array(
   'id'=>'news-grid',
   'dataProvider'=>$dataProvider,
   //'filter'=>$model,
   'columns'=>array(
       'id',
       'title',
       'content'=>array(
           'value'=>'Helper::truncate_utf8_string($data->content,40,false)',),
       'author',
       'create_time',
       'status',
       array(
           'class'=>'CButtonColumn',
       ),
   ),
)); ?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章