读书人

Yii系列小结:截取字符串方法

发布时间: 2013-02-24 17:58:56 作者: rapoo

Yii系列总结:截取字符串方法

1.先建立一个文件 Helper.php,内容如下:

--------------------------------------

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

读书人网 >编程

热点推荐