Intercept the GBK string problem ~ ~ ~
This is a function that intercepts the GBK string:
PHP Code
function gb_substr ($str, $len) { $count = 0; for ($i =0; $i < strlen ($STR); $i + +) { if ($count = = $len) break ; if (Preg_match ("/[\x80-\xff]/", substr ($str, $i, 1))) { + + + $i; } + + $count; } Return substr ($str, 0, $i); }
My question is, GBK and GB2312 each character is not sure to be 2 bytes? The length of the direct use of the intercept will not be finished?
For example, I want to intercept 3 characters: 3*2=6 is the position I want to intercept to 6.
You think so, right?
------Solution--------------------
Using the MB series function, the GBK is two characters non-ASCII, ASCII or 1 bytes.
------Solution--------------------
No, because there are numbers or characters that may contain ASCII code
discuss
This is a function that intercepts the GBK string:
PHP Code
function Gb_substr ($STR, $len) {
$count = 0;
for ($i =0; $i < strlen ($STR); $i + +) {
if ($count = = $len) break ...