"/> ">

Home  >  Article  >  Backend Development  >  Italic gb2312 PHP interception string function supports gb2312 and utf-8

Italic gb2312 PHP interception string function supports gb2312 and utf-8

WBOY
WBOYOriginal
2016-07-29 08:41:511272browse

1. Function to intercept GB2312 characters
PHP code

Copy code The code is as follows:


//Intercept Chinese string
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;
}
?>


2. Intercept utf8 encoded multi-byte string
PHP code

Copy code The code is as follows:


//Intercept utf8 characters 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);
}
?>


3. Chinese character interception function supported by UTF-8 and GB2312
PHP code

Copy code The code is as follows:


/*
Chinese character interception function supported by both Utf-8 and gb2312
cut_str(string, interception length, starting length, encoding);
Encoding defaults to utf-8
Starting 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');
?>


4 . BugFree’s character interception function
PHP code

Copy code The code is as follows:


/**
* @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
*
*
* Return part of a string(Enhance the function substr())
*
* @author Chunsheng Wang
* @param string $String the string to cut.
* @param int $Length the length of returned string.
* @param booble $Append whether append "...": false|true
* @return string the cutted string.
*/
function sysSubStr($String,$Length,$Append = false )
{
if (strlen($String) < = $Length )
{
return $String;
}
else
{
$I = 0;
while ($I < $Length)
{
$ StringTMP = substr($String,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3);
$I = $I + 3;
}
elseif( ord($StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2);
$I = $I + 2;
}
else
{
$I = $I + 1;
}
$StringLast[] = $StringTMP;
}
$StringLast = implode("",$StringLast);
if($Append)
{
$StringLast .= ".. .";
}
return $StringLast;
}
}
$String = "book.chinaz.com -- Webmaster Library, Webmaster Tutorial";
$Length = "18";
$Append = false;
echo sysSubStr($String,$Length,$Append);
?>

The above introduces the regular script gb2312 PHP interception string function that supports gb2312 and utf-8, including the content of regular script gb2312. I hope it will be helpful to friends who are interested in PHP tutorials.

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