Home >Backend Development >PHP Tutorial >PHP interception Chinese string function ~ including GB2312 and UT-8_PHP tutorial

PHP interception Chinese string function ~ including GB2312 and UT-8_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:48:31795browse

/*
Chinese character interception function supported by Utf-8 and gb2312
cut_str(string, cut length, starting length, encoding);
The encoding defaults to utf-8
Start length defaults to 0
*/

function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
If($code == 'UTF-8')
{
$pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]| xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
          preg_match_all($pa, $string, $t_string);

If(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
           return join('', array_slice($t_string[0], $start, $sublen));
}  
else
{
$start = $start*2;
         $sublen = $sublen*2;
          $strlen = strlen($string);
          $tmpstr = '';

for($i=0; $i< $strlen; $i++)
                                                                    If($i>=$start && $i< ($start+$sublen))
                                                                    If(ord(substr($string, $i, 1))>129)
                                                                                                              $tmpstr.= substr($string, $i, 2);
                                                                                                                                  else                                                                                                            $tmpstr.= substr($string, $i, 1);
                                                                                                                                                                                                                                                          If(ord(substr($string, $i, 1))>129) $i++;
         } 
If(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
          return $tmpstr;
}  
}

$str = "The string that abcd needs to intercept";
echo cut_str($str, 8, 0, 'gb2312');
?>

//Intercept Chinese string
//Support GB2312
Function mysubstr($str, $start, $len) {
          $tmpstr = "";
          $strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {

If(ord(substr($str, $i, 1)) > 0xa0) {

                     $tmpstr .= substr($str, $i, 2);
$i++;
              } else
                        $tmpstr .= substr($str, $i, 1);
         } 
         return $tmpstr;
}  
?>


//Intercept utf8 string
function utf8Substr($str, $from, $len)
{
Return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.
                    '((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>

Excerpted from Internet Marketing Blog

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478413.htmlTechArticle?php /* Chinese character interception function cut_str (string, interception length, start) supported by Utf-8 and gb2312 Length, encoding); The encoding defaults to utf-8 and the starting length defaults to 0 */ function cut_str($stri...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn