织梦有很多内置函数,比如常见的 mydate、html2text等函数,但这些函数对自定义程度高的项目来说是远远不够的,所以我们需要自己定义函数使用,就像使用mydate一样!
1、找到自定函数文件 —— include/extend.func.php
2、添加自定义函数(可以使用全局变量 $GLOBALS),我这里写了一个自定义字符等宽度值截取函数,用于样式与字数匹配的函数。
/** * utf-8中文截取,mb_string 截取模式 (自定义函数) * * @access public * @param string $str 需要截取的字符串 * @param int $slen 截取的长度 * @param int $startdd 开始标记处 * @return string */function mb_sub($str, $length, $start=0, $encode=''){ global $cfg_soft_lang; $encode=$cfg_soft_lang; if(strlen($str) < $start+1) { return ''; } if(!function_exists('mb_substr') ){ return cn_substr_utf8($str, $length, $start=0); } if($encode!='utf8'){ $str = mb_convert_encoding($str,'utf8',$encode); } $osLen = mb_strlen($str); if($osLen<=$length){ return $str; } $string = mb_substr($str,$start,$length,'utf8'); $sLen = mb_strlen($string,'utf8'); $bLen = strlen($string); $sCharCount = (3*$sLen-$bLen)/2; if($osLen<=$sCharCount+$length){ $arr = preg_split('/(? 0){ $sCharCount = $sCharCount-1; }else { $sCharCount = $sCharCount-2; } if($sCharCount<=0){ break; } $string.=$value; } if(strlen($str)>strlen($string)){ $string.='...'; } return $string;}
文件最后不要画蛇添足的添加文件结束符 ?>
3、直接调用函数:
<p class="l23">[field:description function="mb_sub(Html2Text(@me),68)"/]</p>
完成自定义函数!