smarty中改进truncate使其支持中文的方法

 更新时间:2016年6月12日 10:11  点击:2632

本文实例讲述了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程序设计有所帮助。

[!--infotagslink--]

相关文章

  • smarty中改进truncate使其支持中文的方法

    这篇文章主要介绍了smarty中改进truncate使其支持中文的方法,涉及针对Smarty源码中truncate源文件进行函数功能扩展的相关技巧,需要的朋友可以参考下...2016-06-12
  • smarty简单模板变量输出方法 原创

    这篇文章主要介绍了smarty简单模板变量输出方法,涉及Smarty模板中数组的定义、使用及assign方法进行变量替换的相关技巧,需要的朋友可以参考下...2016-07-25
  • SmartyZip,一个Smarty的装载类

    AdodbZip1.1有更新,更新了下载地址。 SmartyZip,一个Smarty的装载类 <?php教程 // 设定参数 SmartyZip::$zip_url = 'http://www.smarty.net教程/distributions/...2016-11-25
  • Smarty日期时间操作方法示例

    这篇文章主要介绍了Smarty日期时间操作方法,结合实例形式较为详细的分析了Smarty日期时间操作相关函数、参数功能及使用技巧,需要的朋友可以参考下...2016-11-22
  • Zend Framework框架Smarty扩展实现方法

    这篇文章主要介绍了Zend Framework框架Smarty扩展实现方法,结合实例形式较为详细的分析了Zend Framework框架Smarty扩展的具体步骤与相关设置技巧,需要的朋友可以参考下...2016-03-27
  • php smarty 基础

    Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码...2016-11-25
  • smarty高级特性之过滤器的使用方法

    这篇文章主要介绍了smarty高级特性之过滤器的使用方法,结合实例形式分析了smarty过滤器的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2015-12-27
  • Zend Framework+smarty用法实例详解

    这篇文章主要介绍了Zend Framework+smarty用法,结合实例形式详细分析了Zend Framework框架整合Smarty模板的具体步骤与相关实现技巧,需要的朋友可以参考下...2016-03-21
  • yii,CI,yaf框架+smarty模板使用方法

    这篇文章主要介绍了yii,CI,yaf框架+smarty模板使用方法,结合实例形式介绍了yii,CI及yaf框架整合smaryt模板的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2016-01-02
  • Smarty环境配置与使用入门教程

    这篇文章主要介绍了Smarty环境配置与使用方法,较为详细的分析了Smarty环境的搭建与配置参数的功能含义,非常简单易懂,需要的朋友可以参考下...2016-05-13
  • CI框架集成Smarty的方法分析

    这篇文章主要介绍了CI框架集成Smarty的方法,对比分析并改进了网上已有的方法,详细介绍了CI框架继承Smarty模板的具体步骤与相关技巧,需要的朋友可以参考下...2016-05-20
  • Smarty实例教学 实例篇

    Smarty实例教学 实例篇(三、使用ADODB连接数据库) 前两个月因为工作上的原因一直很忙,所以没有及时完成这个教程,正好今天周六不用加班,抽个空完成它吧! 在开始新的的教...2016-11-25
  • php5中Iterator与smarty整合

    php5中Iterator与smarty整合 Iterator(迭代器)在PHP5中是非常重要的,我注意到Iterator在Smarty中不能正常的工作。 Smarty会自动将一个object(对象)转换成array(数...2016-11-25
  • PHP中__autoload和Smarty冲突的简单解决方法

    这篇文章主要介绍了PHP中__autoload和Smarty冲突的简单解决方法,通过spl_autoload_register注册__autoload函数的方法来解决__autoload函数再在Smarty无效的问题,需要的朋友可以参考下...2016-04-15
  • ThinkPHP使用Smarty第三方插件方法小结

    这篇文章主要介绍了ThinkPHP使用Smarty第三方插件方法,结合实例形式总结分析了ThinkPHP使用Smarty模板的具体步骤与相关注意事项,需要的朋友可以参考下...2016-03-21
  • PHP模板引擎Smarty中的保留变量用法分析

    这篇文章主要介绍了PHP模板引擎Smarty中的保留变量用法,较为详细的分析说明了Smarty中的保留变量的功能与具体使用方法,需要的朋友可以参考下...2016-04-15
  • smarty页函数

    <?php /******************************************* writer:zhaofei299 Emai:zhaofei299@163.com 百度空间:http://hi.baidu.com/zhaofei299 *****************...2016-11-25
  • smarty高级特性之对象的使用方法

    这篇文章主要介绍了smarty高级特性之对象的使用方法,结合实例形式简单分析了使用类与对象的相关技巧,需要的朋友可以参考下...2015-12-27
  • PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例

    这篇文章主要介绍了PHP模板引擎Smarty之配置文件在模板变量中的使用方法,结合实例形式分析了配置文件变量的具体使用步骤与相关技巧,需要的朋友可以参考下...2016-04-15
  • Smarty分页实现方法完整实例

    这篇文章主要介绍了Smarty分页实现方法,涉及基于Smarty的数据库查询、分页相关计算与模板操作技巧,需要的朋友可以参考下...2016-05-13