【Thinkphp】字符串截取函数msubstr

使用Thinkphp开发项目,需要对列表文字进行截取,而不至于文字溢出。一开始使用的是PHP再带的截取函数substr,发现此函数只对英文或者数字截取,然后再使用mb_substr,还是出现问题:会出现乱码。查看thinkphp文档发现有对应的函数(msubstr),可以来实现以上截取中英文功能。请看如下代码: <span>{$zhzj.desc|msubstr=0,156}<a href=”{:U(‘page’,array(“nav”=>$zhzj[‘name’]))}”>[查看详情]</a> 如果直接在模板中使用该函数的话,可能会提示此函数找不到,解决方法:导入thinkphp函数库即可。代码如下: Load(‘extend’); msubstr函数使用方法: msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true) $str:要截取的字符串 $start=0:开始位置,默认从0开始 $length:截取长度 $charset=”utf-8″:字符编码,默认UTF-8 $suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示  

【thinkphp】解决IF标签变量与变量比较出现的问题

在用thinkphp写项目的时候,发现一个问题:foreach标签循环显示数据时,如果在该标签中需要用到IF标签来判断就会出现问题,请看如下代码: <if condition=”$id < 5 “> value1 <else /> value2 </if> 这种方式是不会出问题,但是遇到二位数组变量或者三维数组变量比较的时候,就会对比不出来,请看代码: <foreach name=”datas.cats_datas” item=”cats”> <option value=”{$cats.cat_id}” <if condition=”$datas.datas.cat_id eq $cats.cat_id “>selected=”selected”</if> >{$cats.cat_name}</option> </foreach>  解决方法: <foreach name=”datas.cats_datas” item=”cats”> <option value=”{$cats.cat_id}” <if condition=”$datas[‘datas’][‘cat_id’] eq $cats[‘cat_id’] “>selected=”selected”</if> >{$cats.cat_name}</option> </foreach>  原因: 第一层标签以下不支持$a.name这种点的写法,所以大家尽量使用$a[‘name’]这种。