Skip to main content

ThinkPHP带的字符串截取函数是msubstr

但是$suffix参数,为true,字符串长度不足截取长度的时候,也会显示…

原因是函数里面没判断。

/**
+----------------------------------------------------------
* 字符串截取,支持中文和其他编码
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $str 需要转换的字符串
* @param string $start 开始位置
* @param string $length 截取长度
* @param string $charset 编码格式
* @param string $suffix 截断显示字符

function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

在不改变原有的函数的基础上,可以这样调用

{$painting.painting_name|msubstr=0,9,'utf-8',false}
<eq name="painting.painting_name|checkStrNum=9" value="0"...</eq>;