织梦CMS升级后出现 ?/a>或?/h3>导致网页错乱的解决方法
最近将织梦dedecms的版本升级了下,原来我的是V5.5,现在升级成织梦dedecmsV5.6的。但发现V5.6有一个织梦dedecmsV5.5从来没的错误。
这就是出现如?/a>或?/h3>导致页面错乱问题,如果你的站也遇到这种情况,请试试下面的方法。
这就是出现如?/a>或?/h3>导致页面错乱问题,如果你的站也遇到这种情况,请试试下面的方法。
找到/include/common.func.php
//中文截取2,单字节截取模式 function cn_substr($str,$slen,$startdd=0) { global $cfg_soft_lang,$cfg_is_mb,$cfg_is_iconv; //判断是否使用mb_substr if($cfg_is_mb) { if($cfg_soft_lang=='utf-8') mb_internal_encoding("UTF-8"); return mb_substr($str, $startdd, $slen*2); } if($cfg_is_iconv) { return iconv_substr($str, $startdd, $slen*2); } if($cfg_soft_lang=='utf-8') { return cn_substr_utf8($str,$slen,$startdd); } $restr = ''; $c = ''; $str_len = strlen($str); if($str_len < $startdd+1) { return ''; } if($str_len < $startdd + $slen || $slen==0) { $slen = $str_len - $startdd; } $enddd = $startdd + $slen - 1; for($i=0;$i<$str_len;$i++) { if($startdd==0) { $restr .= $c; } else if($i > $startdd) { $restr .= $c; } if(ord($str[$i])>0x80) { if($str_len>$i+1) { $c = $str[$i].$str[$i+1]; } $i++; } else { $c = $str[$i]; } if($i >= $enddd) { if(strlen($restr)+strlen($c)>$slen) { break; } else { $restr .= $c; break; } } } return $restr; } |
替换为
//中文截取2,单字节截取模式 function cn_substr($str,$slen,$startdd=0) { global $cfg_soft_lang; if($cfg_soft_lang=='utf-8') { return cn_substr_utf8($str,$slen,$startdd); } $restr = ''; $c = ''; $str_len = strlen($str); if($str_len < $startdd+1) { return ''; } if($str_len < $startdd + $slen || $slen==0) { $slen = $str_len - $startdd; } $enddd = $startdd + $slen - 1; for($i=0;$i<$str_len;$i++) { if($startdd==0) { $restr .= $c; } else if($i > $startdd) { $restr .= $c; } if(ord($str[$i])>0x80) { if($str_len>$i+1) { $c = $str[$i].$str[$i+1]; } $i++; } else { $c = $str[$i]; } if($i >= $enddd) { if(strlen($restr)+strlen($c)>$slen) { break; } else { $restr .= $c; break; } } } return $restr; } |