dedecms分页效果(dedecms重新定义cn_substr函数截取字数更准确)
类别:CMS系统 浏览量:2803
时间:2022-01-18 01:19:34 dedecms分页效果
dedecms重新定义cn_substr函数截取字数更准确方法说明:
一、找到\include\helpers\string.helper.php把原来约33到102行(也就是定义cn_substr()函数的那段代码)替换掉,你要是怕不行,可以先把这个文件备份下,亲;
/**
* 中英文截取字符串,汉字安2个字节
*
* @access public
* @param string $str 需要截取的字符串
* @param int $cutLen 截取的长度
* @param bool $cutSlashes 是否去掉\
* @param bool $addSlashes 是加\
* @param string $oDot 截取后加的字符串,如经常用的三个点
* @param bool $hasHtml 是否有html
* @return string
*/
if ( ! function_exists(‘cn_substr’)){
function cn_substr($str, $cutLen, $oDot = null, $hasHtml = false, $cutSlashes = false, $addSlashes = false) {
global $cfg_soft_lang;
$str = trim ( $str );
if ($cutSlashes) $str = stripslashes ( $str );
if($hasHtml){
$str = preg_replace ( “/(\<[^\<]*\>|\r|\n|\s|\[.+?\])/is”, ‘ ‘, $str );
$str = htmlspecialchars ( $str );
}else{
$str = htmlspecialchars ( $str );
}
if ($cutLen && strlen ( $str ) > $cutLen) {
$nStr = ”;
if ($cfg_soft_lang == ‘utf-8′) {
$n = 0;
$tn = 0;
$noc = 0;
while ( $n < strlen ( $str ) ) {
$t = ord ( $str [$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 >= $cutLen)break;
}
if ($noc > $cutLen) $n -= $tn;
$nStr = substr ( $str, 0, $n );
} else {
for($i = 0; $i < $cutLen – 1; $i ++) {
if (ord ( $str [$i] ) > 127) {
$nStr .= $str [$i] . $str [$i + 1];
$i ++;
} else {
$nStr .= $str [$i];
}
}
}
$str = $nStr . $oDot;
}
if ($addSlashes) $str = addslashes ( $str );
$str = htmlspecialchars_decode ( $str );
return trim ( $str );
}
}
二、全站都使用cn_substr()函数,不管你程序是gbk还是utf8;
比如你要调用10个字(拼音汉字混杂):[field:title function='cn_substr(@me,20)']即可
您可能感兴趣
- dedecms关闭站点(dedecms搬家后出现/include/templets/default/index.htm Not Found!解决方案)
- dedecms点击量(dedecms生成速度超级优化攻略 从50秒20页到0.72秒20页)
- dedecms文章标题(dedecms5.7后台发布文章提示“标题不能为空”的解决方法)
- 通用版织梦dedecms(织梦DedeCMS多城市分站插件、站群插件)
- dedecms导入doc插件(DEDECMS教程之静态模板类类文件)
- dedecms发布时间调整(织梦DEDECMS发布完文章没有显示文章内容解决办法)
- dedecms自助购买(DEDECMS 支付宝操作手册)
- dedecms图集栏目(Dedecms图集上传zip压缩包解压图片顺序不对问题的解决方法)
- dedecms标签怎么用(dedecms 添加字段后软件列表页无法调用软件大小问题的解决方法)
- dedecms漏洞防范(浅析DedeCMS投票模块漏洞的解决方法)
- dedecms悬浮导航(DEDECMS开启绝对地址PC端跳转到静态手机端实现方法)
- 织梦dedecms建站详细流程(修改织梦dedecms后台默认admin账号的方法)
- dedecms 怎么设置栏目(dedecms如何实现tag标签伪静态的方法)
- dedecms模板特点(在Dedecms下面生成Google Sitemap的方法)
- thinkphp兼容dedecms(DedeCMS Error:Tag disabled:"php"的解决办法)
- dedecms表单格式(DedeCMS arclist的分页使用教程)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
- 你怎么忘了是说先爱我(你怎么忘了如何爱我)
- 做技术难吗(技术难不难)
- 林心如是谁(林心如是谁演的)
- 泰国安全吗(泰国安全吗2023)
热门推荐
- netcoredocker视频教程(Docker安装部署Net Core实现过程解析)
- laravel 模块目录(Laravel框架文件上传功能实现方法示例)
- pythonqt入门教程(使用python实现mqtt的发布和订阅)
- dedecms使用教程(Dedecms提示信息及提示内容的修改方法)
- laravel使用队列(基于laravel where的高级使用方法)
- MySQL中查询数据库的大小
- mysql innodb存储原理(mysql innodb的重要组件汇总)
- 如何用python识别微信内容(Python 实现微信防撤回功能)
- mysql怎么查看表的字段(Mysql 获取表的comment 字段操作)
- MVC中JS获取后台的数据
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9