//Chinese interception, 2 single-byte interception pattern
function  Cn_substr ($STR, $slen, $startdd=0) {
        $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 (word ($STR [$I]) >0 x80) {
                        If ($str_len >$I + 1)   $c =  $STR [r]. $I $STR [$I + 1);
                        $i++;
                }
                The else {        $c =  $STR ($I);   }

                If ($i  >=  $enddd) {
                        If (strlen ($restr) + strlen ($c) >$slen)   Break;
                        The else {  $restr  .=  $c;   Break;   }
                }
        }
        Return  $restr;

} function  Cn_midstr ($STR, $start, $len) {
        Return  Cn_substr ($STR, $slen, $startdd);
}

you might be interested in the article:

  • PHP Chinese processing Chinese string interception (mb_substr) and access to Chinese alphanumeric string
  • the mixed string interception function in PHP code
  • PHP url string clipping path file name and extension function
  • PHP supports multiple encoded string interception function in Chinese!
  • PHP string interception problem


This concludes the body part