猎凡网络承接仿站、网站定制业务,诚邀您的合作! 猎凡网为你提供:dedecms织梦仿站帝国cms仿站网站定制、企业仿站等服务,欢迎您的访问!
<
>
当前位置: 首页 > 仿站知识

帝国cms如何截取字符串(文章和列表)

时间:2019-09-23 06:00:01  来源:admin  作者:猎凡网络

帝国cms截取字符串的方法首先可以用自带函数<?=esub($navinfor[biaoqianming],22)?>,但是这个在内容模板中使用的,如果是在列表模板中使用的话就需要将代码写在list.var中,如果是截取标题和简介,帝国cms后台自带的标签截取功能是可以实现的,如下图设置

ffffff.jpg

但是如果我们的字段并不是简介或者标题,就需要自己去手动开发了,首先打开e/class/connect.php这个文件,这个php文件是帝国的sub函数文件,我们在仿站的时候来这个文件内自己新增一个函数

 function xoo($string){  $string=preg_replace("']*?>.*?'si","",$string);//去掉javascript  $string=preg_replace("'<[\/\!]*?[^<>]*?>'si","",$string);//去掉HTML标记  $string=preg_replace("'([\r\n])[\s]+'","",$string);//去掉空白字符  $string=preg_replace("'&(quot|#34);'i","",$string);//替换HTML实体  $string=preg_replace("'&(amp|#38);'i","",$string);  $string=preg_replace("'&(lt|#60);'i","",$string);  $string=preg_replace("'&(gt|#62);'i","",$string);  $string=preg_replace("'&(nbsp|#160);'i","",$string);  return$string;  }

然后在后台打开列表模板,在list.var中添加响应的代码,记得勾选支持php

$r[smalltext]=esub(xoo($r[biaoqianming]),390,'..');  $listtemp='  [!--title--]  [!--biaoqianming--]  ';

这样就可以实现截取我们后添加的字段名了。还有一点帝国仿站自带的sub截取函数会出现中文符号截取错误问题,我们先看一下帝国的sub的自带函数代码

//字符截取函数function sub($string,$start=0,$length,$mode=false,$dot='',$rephtml=0){        global $ecms_config;        $strlen=strlen($string);        if($strlen<=$length)        {                return $string;        }        if($rephtml==0)        {                $string = str_replace(array('&nbsp;','&amp;','&quot;','&lt;','&gt;','&#039;'), array(' ','&','"','<','>',"'"), $string);        }        $strcut = '';        if(strtolower($ecms_config['sets']['pagechar']) == 'utf-8') {                $n = $tn = $noc = 0;                while($n < $strlen) {                        $t = ord($string[$n]);                        if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {                                $tn = 1; $n++; $noc++;                        } elseif(194 <= $t && $t <= 223) {                                $tn = 2; $n += 2; $noc += 2;                        } elseif(224 <= $t && $t < 239) {                                $tn = 3; $n += 3; $noc += 2;                        } elseif(240 <= $t && $t <= 247) {                                $tn = 4; $n += 4; $noc += 2;                        } elseif(248 <= $t && $t <= 251) {                                $tn = 5; $n += 5; $noc += 2;                        } elseif($t == 252 || $t == 253) {                                $tn = 6; $n += 6; $noc += 2;                        } else {                                $n++;                        }                        if($noc >= $length) {                                break;                        }                }                if($noc > $length) {                        $n -= $tn;                }                $strcut = substr($string, 0, $n);        } else {                for($i = 0; $i < $length; $i++) {                        $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];                }        }        if($rephtml==0)        {                $strcut = str_replace(array('&','"','<','>',"'"), array('&amp;','&quot;','&lt;','&gt;','&#039;'), $strcut);        }        return $strcut.$dot;}

在这句代码中

elseif(224 <= $t && $t < 239) {

帝国cms出了一个小错误,所以导致了中文标点截取错误,我们把这句修改成

elseif(224 <= $t && $t <= 239) {

这样自带的sub函数对中文标点截取就可以正常了。

本文网址:https://fangzhan.seobr.com/news/268.html
本文由猎凡仿站网发布,如果您还想了解更多关于网站仿制的文章,请点击查看 仿站知识 的其它文章,转发请注明来源及版权归属。
承接以下业务:传统网站改自适应网站、网站增加手机站、网站改全屏网站改大屏展示、GBK转UFT-8、DEDECMS转WORDPRESS、网站站群制作、企业网站设计、企业网站优化、网站托管等业务

标签:帝国   自带
相关文章

推荐资讯
热点标签

数年专注于仿站建站,擅长dedecms仿站、WORDPRESS仿站、帝国cms仿站、网站改版等业务! Copyright©2019 猎凡仿站网 All Rights Reserved