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

WBOY
Release: 2016-07-13 17:48:31
Original
734 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...
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!