您现在的位置是:首页 > cms教程 > DedeCMS教程DedeCMS教程
dede织梦cms重新定义cn_substr函数截取字数
沈锵良2023-11-20DedeCMS教程已有人查阅
导读dedecms的cn_substr()和cn_substr_utf8()截取的字符串ms不准,平时也用习惯cn_substr(),也不愿用什么cn_substr_utf8()今天弄了下,现在还是比较准了。
dedecms的cn_substr()和cn_substr_utf8()截取的字符串ms不准,平时也用习惯cn_substr(),也不愿用什么cn_substr_utf8()今天弄了下,现在还是比较准了。按照一个汉字2个字节调用就行了!
方法说明:
一、找到\include\helpers\string.helper.php把原来约33到102行(也就是定义cn_substr()函数的那段代码)替换掉,你要是怕不行,可以先把这个文件备份下,亲;
比如你要调用10个字(拼音汉字混杂):[field:title function='cn_substr(@me,20)']即可
方法说明:
一、找到\include\helpers\string.helper.php把原来约33到102行(也就是定义cn_substr()函数的那段代码)替换掉,你要是怕不行,可以先把这个文件备份下,亲;
/** *中英文截取字符串,汉字安2个字节 * * @accesspublic * @param string$str 需要截取的字符串 * @param int$cutLen 截取的长度 * @param bool $cutSlashes 是否去掉\ * @param bool $addSlashes 是加\ * @param string $oDot 截取后加的字符串,如经常用的三个点 * @param bool $hasHtml 是否有html * @returnstring */ 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)']即可
本文标签:
很赞哦! ()
相关教程
- dede织梦cms去除列表页文章标题加粗标签的方法
- dede织梦cms发布文章设置会员查看级别教程
- 解决dede织梦cms网页木马(含iframe/script木马)
- dede织梦cms栏目页面转换为单独页面
- dede织梦cms中[field:imglink/]图片大小问题解决办法
- dede织梦cms自动给发布过的文章关键词加超链接
- dede织梦cms的广告FLASH幻灯代码示例
- dede织梦cms中如何运行php脚本和变量底层字段进行处理
- dede织梦cms5.7换头部LOGO的方法
- dede织梦cms实现表单(模型)分步提交的功能
- dede织梦cms5.7网站备份该备份哪些内容
- dede织梦cms两年的网站优化经验分享
图文教程
实现dedecms文章标题分栏显示
实现DEDECMS“文章标题-2级栏目-1级栏目-网站名”形式本来想修改inc_archives_view.php来实现,后来发现用“position”更简便。
织梦dedecms最新文章显示红色日期或加上new字或new小图片
DedeCMS发布的文章显示红色日期或加上new字或new小图片,给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片等,都是围绕pubdate做文章
织梦dede网站怎么生成网站地图
很多朋友在向GG提交地图的时候说很麻烦,因为DEDE生成的XML地图是根据每个栏目生成的单个的文件,这样需要提交很多次,而且以后如果有了新栏目还需要再手动提交。
dede织梦后台批量替换文章内容和缩略图的方法
第一种方法: 进入后台,点左侧的采集,点选批量维护的数据库内容替换。 1.替换标题内某关键词,选择dede_archives数据表,选择title字段,被
相关源码
-
快递物流公司pbootcms网站模板html响应式自适应源码下载基于HTML5+CSS3前沿技术开发,实现PC、平板、手机多端自适应。采用弹性布局与媒体查询技术,确保不同设备均有流畅视觉体验,企业形象统一。查看源码 -
(自适应)简繁双语机械矿山矿石五金设备pbootcms源码下载本模板基于PbootCMS开发,主要面向机械五金、矿山矿石设备等行业,支持简体中文和繁体中文双语切换。采用响应式布局技术,确保在各种设备上都能获得良好的浏览体验。模板设计注重展示工业设备的专业性和技术特点,帮助企业建立可靠的线上展示平台。查看源码 -
pbootcms模板(PC+WAP)火锅加盟餐饮美食类带留言源码基于PbootCMS内核深度开发,为火锅、餐饮品牌打造的营销型解决方案。采用红色主题传递行业活力,实现PC与WAP端适配。查看源码 -
(自适应)文案文档作文写作word资源网站模板下载本模板基于PbootCMS系统深度开发,针对电影解说、文案分享类网站的特殊需求设计。采用响应式布局技术,确保在手机端和桌面端都能呈现专业的内容展示效果,帮助运营者高效管理影视解说资源。查看源码 -
(自适应HTML5)响应式智能设备人工智能机器pbootcms源码免费下载这款基于PbootCMS开发的网站模板为人工智能和智能设备行业设计,采用现代化科技风格,突出产品的智能特性和技术创新。模板架构合理,功能完善,能够有效展示各类智能产品的核心功能和解决方案。查看源码 -
(自适应响应式)动力刀座五金机械设备pbootcms网站源码下载为动力刀座及五金机械企业定制的响应式网站框架,基于PbootCMS系统深度开发,助力传统制造企业实现数字化转型升级。采用手工编写的DIV+CSS前端架构,代码执行效率提升40%。查看源码
| 分享笔记 (共有 篇笔记) |
