美工统筹SEO,为企业电子商务营销助力!
smarty中改良truncate使其撑持中文的体例
一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-27 10:44:11 阅读数: 102
本文实例报告了smarty中改良truncate使其撑持中文的体例。分享给大师供大师参考,详细以下:
smarty的truncate不撑持中文的截取。将smarty目次下plugins中的modifier.truncate.php改成上面这个模样就能够了
<?php /* * Smarty plugin * ------------------------------------------------------------- * Type: modifier * Name: truncate * Purpose: Truncate a string to a certain length if necessary, * optionally splitting in the middle of a word, and * appending the $etc string. * Update: change substr to msubstr and add fun msubstr.so it * can bu used in chinese charset. * ------------------------------------------------------------- */ function smarty_modifier_truncate($string, $length = 80, $etc = "...", $break_words = false) { if ($length == 0) return ""; if (strlen($string) > $length) { $length -= strlen($etc); if (!$break_words) $string = preg_replace("//s+?(/S+)?$/", "", SubstrGB($string, 0, $length+1)); return SubstrGB($string, 0, $length).$etc; } else return $string; } function SubstrGB($str,$start,$len){ for($i=0;$i<$start+$len;$i++){ $tmpstr=(ord($str[$i])>=161 && ord($str[$i])<=254&& ord($str[$i+1])>=161 && ord($str[$i+1])<=254)?$str[$i].$str[++$i]:$tmpstr=$str[$i]; if ($i>=$start&&$i<($start+$len))$tmp .=$tmpstr; } return $tmp; } /* vim: set expandtab: */ ?>
更多对于Smarty相干内容感乐趣的读者可检查本站专题:《smarty模板入门根本教程》、《PHP模板手艺总结》、《PHP基于pdo操纵数据库技能总结》、《PHP运算与运算符用法总结》、《PHP收集编程技能总结》、《PHP根基语法入门教程》、《php面向东西法式设想入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操纵入门教程》及《php罕见数据库操纵技能汇总》
但愿本文所述对大师基于smarty模板的PHP法式设想有所赞助。