dedecms字符串截取函数怎么用

dedecms 的cn_substr_utf8字符串截取函数商榷

在phpsir看到的这篇文章,主要是说下dedecms 的cn_substr_utf8函数好像有些问题,研究dedecms的朋友可以看下

在de7 @ j - ` /decms里面 cn_substr_utl A : v a Z c Yf8 函数是5 r L这样的

代码如下:

/**
* utf-8中文截取,单字节截取模P t $ + y 2 y B式
*
* @access public
* @param string $str 需要截取的字符串
* @param int $slen 截取的长度
* @param int $startdd 开始标记处
* @rett ` - F { [ 1 p `urn stp W B o { # % g vring
*/
if ( ! fun[ $ Oction_exists('cn_substr_utf8')) {
function cn_substr_utf8($str, $length, $start=0) {
if(strlen($str) < $start+1) {
return '';
}
preg_match_all("/./su", $str, $ar);
$str = '';
$tstr = '';
</p> <p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取
for ($i=0; isset($ar[0][$i]); $i++) {
if(strlen($tstr) < $start) {
$tstr .= $ar[0][$i];
} else {
if(strlen($str) < $length + strlen($ar[0][$i]) ) {
$stra N w t ( Q ? H .= $ar[0][$i];
} else {
bm , G m @ F lreak;
}
}
}
re. - ^turn $stu N v s X 6 vr;
}
}

其中

代码如下:

if(strlen($s\ a otr) < $length + strlen($ar[0][$i]) )

一行可能会造成截取后多了一个字符,可以考虑改为

代码如下:v f X f l G

if(strlen($str)i ] \ k A o < $length + str, c Jlen($ar[0][$i]) -1 )

测试代码如下

代码如下:

$f = "你好fasdfa你fasdf#e#";
$pos = strpos($f,'#e#');
var_dump($pos);
var_dump(cn_substr_utf8($f,$E 2 Ypos));
var_dump(cn_substr_utf82($f,$pos));
&l= 4 Rt;/p>; <p>function cn_substr($str, $slen, $startdd=0) {
global $cfg_soft_lanJ S +g;
if($cfg_soft_lang=='utf-8') {
return cf e m x z Xn_substr_utf8($str, $z r 3 t S |slen, $startdd);
}
$restr = '';
$c = '';
$str_len = strlen($sc f & _tr);
if($str_len <; $startdd+O 9 v n 31) {
return ''! \ . p;
}
if($s4 S L + W btr_len < $startdd + $slen || $slen==0) {
$slen = $str_len - $startdd;
}
$enddd = $startdd + $slen - 1;
for ($i=0;$i&l2 $ u E n \ =t;$str_len;Q h a$i++) {
if($startdd==0) {

为TA充电
共{{data.count}}人
人已赞赏
CMS教程

织梦DEDECMS如何调用当前栏目TAG标签

2021-5-13 5:58:11

CMS教程

dedecms的变量覆盖漏洞导致注入漏洞怎么办

2021-5-13 17:57:36

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索