1. Intercept GB2312 Chinese string
<?PHPHeader("content-type:text/html;charset=gb2312");//echo "AAAA";//intercept Chinese string## 1. Intercept GB2312 Chinese stringfunctionMYSUBSTR ($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;}$con= "123 Sasas of the telephone Barcelona";EchoMYSUBSTR ($con, 4,5);?>
2. Interception of UTF8 encoded multibyte strings
<?PHPHeader("Content-type:text/html;charset=utf-8");//Intercept UTF8 stringfunctionUTF8SUBSTR ($str,$from,$len){ return Preg_replace(' #^ (?: [\x00-\x7f]| [\xc0-\xff] [\x80-\xbf]+) {0, '.$from.‘}‘. ' (?: [\x00-\x7f]| [\xc0-\xff] [\x80-\xbf]+) {0, '.$len.‘}). * #s ', ' $ ',$str);}$con= ' 123 obtained SS No. 332342 generation A12 ';EchoUTF8SUBSTR ($con, 2,8);?>
3. Chinese character interception function supported by UTF-8 and GB2312
<?PHP/*Utf-8, gb2312 are supported by the Chinese character interception function Cut_str (string, intercept length, start length, encoding); encoding defaults to utf-8 start length default is 0*/functionCUT_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* *; $sublen=$sublen* *; $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= "ABCD string to intercept";EchoCUT_STR ($str, 8, 0, ' gb2312 ');?>
4. Bugfree Character intercept function
<?PHP/** * @package bugfree* @version $Id: functionsmain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Return par T of a string (Enhance the function substr ()) * * * @author chunsheng Wang <[email protected]>* @param s Tring $String the String to cut.* @param int $Length The Length of returned string.* @param booble $Append whethe R Append "...": false|true* @return string The cutted string.*/functionSYSSUBSTR ($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= "17test.info in the forefront of automated testing in China";$Length= "18";$Append=false;EchoSYSSUBSTR ($String,$Length,$Append);?>
PHP string Interception Operations Daquan