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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-13 17:48:31
Original
814 people have browsed it

/*
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 of this Website
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
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template