ThinkPHP的截取字符串函数无法显示省略号的解决方法

对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下:
打开Common/extend.php页面,修改msubstr函数如下:

function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
  if(function_exists("mb_substr")) {
   if($suffix)
  {
     if($str==mb_substr($str, $start, $length, $charset))
     {
      return mb_substr($str, $start, $length, $charset);
     }
     else
     {
      return mb_substr($str, $start, $length, $charset)."...";
     }
 }
    else
 {
   return mb_substr($str, $start, $length, $charset);
  }
  }
  elseif(function_exists('iconv_substr')) {
   if($suffix)
  {
     if($str==iconv_substr($str,$start,$length,$charset))
     {
      return iconv_substr($str,$start,$length,$charset);
     }
     else
     {
      return iconv_substr($str,$start,$length,$charset)."...";
     }
   }
    else
 {
   return iconv_substr($str,$start,$length,$charset);
  }
  }
  $re['utf-8']  = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
  $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
  $re['gbk']  = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
  $re['big5']  = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
  preg_match_all($re[$charset], $str, $match);
  $slice = join("",array_slice($match[0], $start, $length));
  if($suffix) return $slice."…";
  return $slice;
}
(0)

相关推荐

  • ThinkPHP 模板substr的截取字符串函数详解

    ThinkPHP 模板substr的截取字符串函数 在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")){ $slice= mb_substr($str, $start, $length, $charset); }e

  • THINKPHP截取中文字符串函数实例代码

    在项目开发中,我们常常会遇到英文.中文等字符串截取问题,比如说新闻列表页面需要新闻内容简介,这就要用到字符串截取了. 下面就为大家分享一个THINKPHP中已经准备好的字符串截取函数. # 函数解释: msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true) /* $str:要截取的字符串 $start=0:开始位置,默认从0开始 $length:截取长度 $charset="utf-8″:字符编码,默认UTF-8

  • Thinkphp模板中截取字符串函数简介

    在php中截取字符串的函数有很多,而在thinkphp中也可以直接使用php的函数,本文给大家简单的介绍thinkPHP模板中截取字符串的具体用法,希望能对各位有所帮助. 对于英文字符可使用如下形式: 复制代码 代码如下: {$vo.title|substr=0,5} 如果是中文字符thinkphp提供了msubstr,用法如下: 复制代码 代码如下: function msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true

  • thinkPHP内置字符串截取函数用法详解

    本文实例讲述了thinkPHP内置字符串截取函数用法.分享给大家供大家参考,具体如下: thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便.调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用. 比如今天我们说的截取字符串函数,在thinkphp模板引擎里可以这样写:{$vo.title|msubstr=0,5,'utf-8′,false} 至于{$vo.title}这个大家肯定不陌生了.就说说后边的函数msubstr吧.

  • ThinkPHP的截取字符串函数无法显示省略号的解决方法

    对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) { if($suffix) { if($str==mb_substr($str, $start, $le

  • Go语言截取字符串函数用法

    本文实例讲述了Go语言截取字符串函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: func Substr(str string, start, length int) string {     rs := []rune(str)     rl := len(rs)     end := 0             if start < 0 {         start = rl - 1 + start     }     end = start + length        

  • MySQL 截取字符串函数的sql语句

    1.left(name,4)截取左边的4个字符 列: SELECT LEFT(201809,4) 年 结果:2018 2.right(name,2)截取右边的2个字符 SELECT RIGHT(201809,2) 月份 结果:09 3.SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符 SELECT SUBSTRING('成都融资事业部',5,3) 结果:事业部 4.SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后

  • SQL Server中常用截取字符串函数介绍

    SQL Server中一共提供了三个字符串截取函数:LEFT().RIGHT().SUBSTRING(). 一.LEFT()函数 函数说明如下: 语法:LEFT(character,integer). 参数介绍:参数1:要截取的字符串,参数2:截取字符个数. 返回值:返回从字符串左边开始指定个数的字符. 示例SQL:select LEFT('SQLServer_2012',3). 返回:SQL. 二.RIGHT()函数 函数说明如下: 语法:RIGHT(character,integer). 参

  • javascript超过容器后显示省略号效果的方法(兼容一行或者多行)

    javascript超过容器后显示省略号效果 在实际的项目中,由于文字内容的长度不确定性和页面布局的固定性,难免会出现文字内容超过div(或其他标签,下同)区域的情况,此时比较好的做法就是当文字超过限定的div宽度后自动以省略号(-)显示,这样,按照习惯,人们都会知道这儿有文字被省略了.css中有个属性叫做text-overflow:ellipsis;比如使用css可以这样写: {width:27em; white-space:nowrap; text-overflow:ellipsis; -o

  • C#(.net)中按字节数截取字符串最后出现乱码问题的解决

    前言 最近需要用到按字节数截取字符串.在网上找了很多方法. Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码.这样当然是乱码.尤其出现中文时候. 对这类数据处理当然要用统一的编码来处理.下面话不多说了,来一起看看详细的介绍吧 例子:1 string msg= Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(strcode)); 例子:2 string strc

  • ThinkPHP打开验证码页面显示乱码的解决方法

    本文实例讲述了ThinkPHP打开验证码页面显示乱码的解决方法.分享给大家供大家参考.具体分析如下: 在用thinkphp开发的时候,有时会出现验证码乱码的问题,解决方法是把如下这个文件放在根目录,访问后就可以解决了,具体的PHP代码如下: 复制代码 代码如下: <?php if (isset($_GET['dir'])){ //设置文件目录   $basedir=$_GET['dir'];   }else{   $basedir = '.';   }   $auto = 1;   checkd

  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创

    本文实例讲述了ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法.分享给大家供大家参考.具体如下: 在ThinkPHP的config.php中设置: 复制代码 代码如下: 'SHOW_RUN_TIME'=>true; 可以在模板输出运行时间,但是有的时候会出现不显示运行时间的情况. 对此解决方法如下: 打开 ThinkPHP\Lib\Think\Core\View.class.php文件, 在protected function output($content,$disp

  • C#实现将一个字符串进行翻转显示的6种方法

    今天练习C#的一个功能,就是将一个字符串时行翻转显示 如: string str = "Insus.NET"; 翻转成为: string str = "TEN.susnI"; 方法与写法很多. 方法一: public void Reversal(string input) { string result = ""; for (int i = input.Length - 1; i >= 0; i--) { result += input[i

随机推荐