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',
),
),
)); ?>