function cn_substr($str, $len, $start = 0, $isadd = false) { if (DB_CHARSET == 'gbk') { return cn_substr_gbk($str, $len, $start); } else { return cn_substr_utf8($str, $len, $start, $isadd); } }
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; }