Exemplo n.º 1
0
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);
    }
}
Exemplo n.º 2
0
 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;
 }