This article is a collection of several commonly used string interception function, which is to solve the PHP encoding of the character interception will be garbled problems, the need for students can refer to a bit.
Intercept GB2312 Chinese string
| The code is as follows |
Copy Code |
< PHP Intercept Chinese strings 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. Interception of UTF8 encoded multibyte strings
| The code is as follows |
Copy Code |
< PHP 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 ', ' $ ', $str); } ?> |
3. UTF-8, GB2312 both support the Chinese character interception function < PHP
/*
Chinese character interception function supported by Utf-8 and gb2312
Cut_str (string, intercept length, start length, encode);
encoding defaults to Utf-8
Start length defaults to 0
*/
| The code is as follows |
Copy Code |
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; $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"; Echo Cut_str ($STR, 8, 0, ' gb2312 '); ?> |
4. Bugfree character intercept function < php
| The code is as follows |
Copy Code |
/** * @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 = "php100.com--simple, wonderful, universal"; $Length = "18"; $Append = false; Echo syssubstr ($String, $Length, $Append); ?> |
http://www.bkjia.com/PHPjc/444714.html www.bkjia.com true http://www.bkjia.com/PHPjc/444714.html techarticle This article is a collection of several commonly used string interception function, which is to solve the PHP encoding of the character interception will be garbled problems, the need for students can refer to a bit. Intercept ...