加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php smarty truncate UTF8乱码问题处理办法

发布时间:2022-07-01 16:22:47 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php smarty truncate UTF8乱码问题解决办法,需要的朋友可以参考下。 估计不少玩smarty模板的小朋友都遇到过裁切乱码问题。特别是UTF8编码的。 就搞定了。 如果不好用可能是缓存导致,请速度删除templates_c下的缓存文件(小编搞的时候遇到
  这篇文章主要介绍了php smarty truncate UTF8乱码问题解决办法,需要的朋友可以参考下。
 
  估计不少玩smarty模板的小朋友都遇到过裁切乱码问题。特别是UTF8编码的。
 
 
  就搞定了。
 
  如果不好用可能是缓存导致,请速度删除templates_c下的缓存文件(小编搞的时候遇到缓存问题。)代码如下:
 
  <?php
  /**
   * Smarty plugin
   * @package Smarty
   * @subpackage plugins
   */
   
   
  /**
   * Smarty truncate modifier plugin
   *
   * Type:     modifier<br>
   * Name:     truncate<br>
    * @param integer
   * @param string
   * @param boolean
   * @param boolean
   * @return string
   */
  function smarty_modifier_truncate2( $string,$length = 80,$etc='...',$count_words = true ) {
   return $returnstr =substr_utf8($string, 0, $length).$etc;
   
  }
   
  function substr_utf8($str, $start=0, $length=-1, $return_ary=false) {
      $len = strlen($str);if ($length == -1) $length = $len;
      $r = array();
      $n = 0;
      $m = 0;
   
      for($i = 0; $i < $len; $i++) {
          $x = substr($str, $i, 1);
                   $i += 2;
              }
              $n++;
          }else {
              if (substr($a, 0, 1) == 0) {
                  $r[] = substr($str, $i, 1);
              }elseif (substr($a, 0, 3) == 110) {
                  $r[] = substr($str, $i, 2);
                  $i += 1;
              }elseif (substr($a, 0, 4) == 1110) {
                  $r[] = substr($str, $i, 3);
                  $i += 2;
              }else {
                  $r[] = '';
              }
              if (++$m >= $length) {
                  break;
              }
          }
      }
   
      return $return_ary ? $r : implode("",$r);
  }
  /* vim: set expandtab: */
  ?>
  samrty的插件体系还是比较智能而且容易修改的。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读