導讀:織夢文章織夢文章,dedecms的cn_substr()和cn_substr_utf8()截取的字符串ms不準,平時也用習慣cn_substr(),也不愿用什么cn_subst織夢模板免費下裁織夢模板。

,dedecms的cn_substr()和cn_substr_utf8()截取的字符串ms不準,平時也用習慣cn_substr(),也不愿用什么cn_substr_utf8()今天弄了下,現(xiàn)在還是比較準了。按照一個漢字2個字節(jié)調(diào)用就行了!
方法說明:
一、找到\include\helpers\string.helper.php把原來約33到102行(也就是定義cn_substr()函數(shù)的那段代碼)替換掉,你要是怕不行,可以先把這個文件備份下,親;
/**
*中英文截取字符串,漢字安2個字節(jié)
*
* @accesspublic
* @param string$str 需要截取的字符串
* @param int$cutLen 截取的長度
* @param bool $cutSlashes 是否去掉\
* @param bool $addSlashes 是加\
* @param string $oDot 截取后加的字符串,如經(jīng)常用的三個點
* @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 = ̶織夢cms模板1;;
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 &&a手機模板dedemp; $t <= 126)) {
$tn = 1;
$n ++;
$noc ++;
} elseif (194 <= $t && $t <= 223) {
$tn = 2;
$n += 2;
$no織夢模板免費c += 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) {
關鍵詞標簽: 精準 函數(shù) 織夢
聲明: 本文由我的SEOUC技術文章主頁發(fā)布于:2023-07-21 ,文章dedecms重新定義cn_substr函數(shù)截取字數(shù)更精準,織夢文主要講述精準,函數(shù),織夢網(wǎng)站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_33481.html