Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

function_core.php 核心函数 cutstr 的一处逻辑错误,导致UTF-8版切割字串不统一

[复制链接]
skyskai 发表于 2016-10-11 09:26:17 | 显示全部楼层 |阅读模式
这个逻辑错误我已经关注好多版本了,从 11年的 X1.5 开始到现在的 X3.2 。
我帮别人做的站,一直在使用 数据调用 模块结合页面模板。

function_core.php 中的 cutstr 字符串切割函数内部,入口判断使用了原生函数 strlen 来判断字符串长度,在实际使用中是不严谨的。
  1. function cutstr($string, $length, $dot = ' ...') {
  2.         if(strlen($string) <= $length) {
  3.                 return $string;
  4.         }
复制代码

这里应当使用 dstrlen  ,DZ自己定义的判断字符串长度函数,就在这个源代码的上方。


  1. function cutstr($string, $length, $dot = ' ...') {
  2.         if(dstrlen( $string ) <= $length) { // SK MOD
  3.                 return $string;
  4.         }
复制代码


显示效果的区别,模板中指定的长度,因为错误数据,得到非期望的显示效果:






影响范围: UTF-8 版本


建议官方修改。反正我是早改过了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 11:06 , Processed in 0.026066 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表