建站技术网专注分享网站建设技术,网站建设教程,真正帮你学会做网站技术,轻松解决网站建设过程中遇到的常见问题,为广大站长服务。 网站地图 | 收藏本站 | 订阅
域名投资,就来找米网,认准网址:www.zhaomi.cc 专业仿站,就到仿站网:www.fangzhan.org
  站内公告: ·帝国cms教程内容已更新,欢迎关注     ·建站技术网采用阿里云服务器,备案已通    
您当前的位置:建站技术网 > cms教程 > 帝国cms教程

帝国cms函数:esub() 截取字段函数,模板制作必备

时间:2019-05-12 11:12:09  来源:网络收集  整理: 建站技术网 www.jzjsw.com     点击:0次

语法:esub(字符串,截取字数,后缀)

说明:后缀为截取字符后附带内容,此参数可以省略。

函数位置:/e/class/connect.php 984行(帝国cms7.2UTF8版本)

使用范例:

<?=esub('12345678',6)?>,返回结果为:123456

<?=esub('12345678',6,'...')?>,返回结果为:123456...

说明:

这里边有个比较重要的功能,就是函数的第三个参数“后缀”,这里可以填省略号,也可以填其他字符,这样可以实现如果字符串被截取,那么会自动追加省略号,如果未被截取则不会追加,在制作模板中非常实用。

函数完整代码:

折叠PHP 代码
  1. //截取字数  
  2. function esub($string,$length,$dot='',$rephtml=0){  
  3.     return sub($string,0,$length,false,$dot,$rephtml);  
  4. }  

说明:esub()函数中另外使用了一个子函数,为字符截取的完整过程,完整代码如下:

折叠PHP 代码
  1. //字符截取函数  
  2. function sub($string,$start=0,$length,$mode=false,$dot='',$rephtml=0){  
  3.     global $ecms_config;  
  4.     $strlen=strlen($string);  
  5.     if($strlen<=$length)  
  6.     {  
  7.         return $string;  
  8.     }  
  9.   
  10.     if($rephtml==0)  
  11.     {  
  12.         $string = str_replace(array(' ','&','"','<','>','''), array(' ','&','"','<','>',"'"), $string); 
  13.     } 
  14.  
  15.     $strcut = ''; 
  16.     if(strtolower($ecms_config['sets']['pagechar']) == 'utf-8') { 
  17.  
  18.         $n = $tn = $noc = 0; 
  19.         while($n < $strlen) { 
  20.  
  21.             $t = ord($string[$n]); 
  22.             if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { 
  23.                 $tn = 1; $n++; $noc++; 
  24.             } elseif(194 <= $t && $t <= 223) { 
  25.                 $tn = 2; $n += 2; $noc += 2; 
  26.             } elseif(224 <= $t && $t < 239) { 
  27.                 $tn = 3; $n += 3; $noc += 2; 
  28.             } elseif(240 <= $t && $t <= 247) { 
  29.                 $tn = 4; $n += 4; $noc += 2; 
  30.             } elseif(248 <= $t && $t <= 251) { 
  31.                 $tn = 5; $n += 5; $noc += 2; 
  32.             } elseif($t == 252 || $t == 253) { 
  33.                 $tn = 6; $n += 6; $noc += 2; 
  34.             } else { 
  35.                 $n++; 
  36.             } 
  37.  
  38.             if($noc >= $length) { 
  39.                 break; 
  40.             } 
  41.  
  42.         } 
  43.         if($noc > $length) { 
  44.             $n -= $tn; 
  45.         } 
  46.  
  47.         $strcut = substr($string, 0, $n); 
  48.  
  49.     } else { 
  50.         for($i = 0; $i < $length; $i++) { 
  51.             $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; 
  52.         } 
  53.     } 
  54.  
  55.     if($rephtml==0) 
  56.     { 
  57.         $strcut = str_replace(array('&','"','<','>',"'"), array('&','"','<','>','''), $strcut);  
  58.     }  
  59.   
  60.     return $strcut.$dot;  
  61. }  
标签:
文章标题:帝国cms函数:esub() 截取字段函数,模板制作必备
文章网址:http://www.jzjsw.com/cmsJiaocheng/diguocms/11261.html
上一篇:制作一个只有登录帝国cms后台后才能访问的页面
下一篇:帝国cms函数:printerror() 系统提示信息并跳转函数
来顶一下
返回首页
返回首页
相关文章
    无相关信息
推荐资讯
如何通过SEO优化排名赚钱?SEO赚钱方法
如何通过SEO优化排名赚
seo优化教程:网站seo内容优化
seo优化教程:网站seo
SEO细节:企业SEO如何快速为新站做出效果
SEO细节:企业SEO如何
电商技术将如何发展?2018年有这五个大胆预测
电商技术将如何发展?
最新文章
栏目更新
栏目热门