zoukankan      html  css  js  c++  java
  • smarty 的 modifier插件

    1、截取gb2312字符串:

    代码
    1 function smarty_modifier_truncate_cn_gb2312($string, $length, $etc = '...')
    2 {
    3 $result = '';
    4 $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'GB2312');
    5 $strlen = strlen($string);
    6
    7 for ($i = 0; (($i < $strlen) && ($length > 0)); $i++)
    8 {
    9 if (ord(substr($string, $i, 1)) > 128)
    10 {
    11 if ($length < 1.0)
    12 {
    13 break;
    14 }
    15 $result .= substr($string, $i, 2);
    16 $length -= 1.0;
    17 $i++;
    18 }
    19 else
    20 {
    21 $result .= substr($string, $i, 1);
    22 $length -= 0.5;
    23 }
    24 }
    25
    26 $result = htmlspecialchars($result, ENT_QUOTES, 'GB2312');
    27
    28 if ($i < $strlen)
    29 {
    30 $result .= $etc;
    31 }
    32
    33 return $result;
    34 }

    2、截取UTF-8字符串:

    代码
    1 function smarty_modifier_truncate_cn_utf8($string, $length, $etc = '...')
    2 {
    3 $result = '';
    4 $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8');
    5 $strlen = strlen($string);
    6
    7 for ($i = 0; (($i < $strlen) && ($length > 0)); $i++)
    8 {
    9 if ($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0'))
    10 {
    11 if ($length < 1.0)
    12 {
    13 break;
    14 }
    15
    16 $result .= substr($string, $i, $number);
    17 $length -= 1.0;
    18 $i += $number - 1;
    19 }
    20 else
    21 {
    22 $result .= substr($string, $i, 1);
    23 $length -= 0.5;
    24 }
    25 }
    26
    27 $result = htmlspecialchars($result, ENT_QUOTES, 'UTF-8');
    28
    29 if ($i < $strlen)
    30 {
    31 $result .= $etc;
    32 }
    33
    34 return $result;
    35 }
  • 相关阅读:
    怎么在myeclipse中怎么集成Tomcat。
    JSP .基础概念
    继承
    封装
    什么是面向对象
    数据排序
    开发的套路
    Javabean规范
    转发和重定向
    md5加密
  • 原文地址:https://www.cnblogs.com/ainiaa/p/1714154.html
Copyright © 2011-2022 走看看