In php, if I want to use substr() to intercept the string in English, it will be no problem. If it includes Chinese or English, it will be a tragedy, but everyone also Don't worry, we can use other methods to solve it.
When php intercepts Chinese strings, garbled characters appear. This is a recent discovery. I have previously written an article about automatically generating meta information
, that article is about using php to intercept the first few words of the article as the description method, but there is a phenomenon that IE6 cannot load CSS, here
Make a supplement.
First of all, we need to clarify this problem. The reason why IE6 occasionally fails to load CSS is because the file is garbled, resulting in
The link loading CSS above cannot be correctly parsed by IE6. So I saw a pure HTML page, no CSS, naked!
After clarifying the problem, the remaining problems can be easily solved, which is to prevent garbled characters. Since the function provided by Wange has garbled characters, just look for it again
I created a php function to solve this garbled code problem.
Thesubstr() function can split text, but problems often occur if the text to be split includes Chinese characters.
The usage of mb_substr() function is similar to substr(), except that one more parameter is added at the end to set the encoding of the string.
After reading this, you should understand the reason why I improved Wange’s method~~
Here are some more advanced processing methods
Example 1
The code is as follows
|
Copy code
|
||||
function func_chgtitle($str,$len) { //$length The maximum length we allow for string display $tmpstr = "";$strlen = $len; for($i = 0; $i < $strlen; $i++) {
If(ord(substr($str, $i, 1)) > 0xa0) { } else $tmpstr .= substr($str, $i, 1);
|
Return $tmpstr;
The code is as follows | Copy code |
for($i = $start; $i < $strlen;) {<🎜> If (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // If the ASCII ordinal number of the first byte in the string value greater than 0xa0 means Chinese character $ TMPSTR. = Substr ($ Str, $ i, 3); // Take the three characters each time to give the variable $ TMPSTR, that is, On a Chinese character $ I = $ i+3; // Variables from 3 } else{ $tmpstr .= substr ( $str, $i, 1 ); // If it is not a Chinese character, take out one character at a time and assign it to Variable $tmpstr $i++; } } return $tmpstr; // Return string } |