Home > Backend Development > PHP Tutorial > PHP determines whether a string is pure English, pure Chinese characters, or a mixed format of Chinese and English

PHP determines whether a string is pure English, pure Chinese characters, or a mixed format of Chinese and English

WBOY
Release: 2016-07-25 09:04:27
Original
1007 people have browsed it
  1. $strarray[1] = "hello";
  2. $strarray[2] = "123456";
  3. $strarray[3] = "123hello";
  4. $strarray[4] = " Scripting School";
  5. $strarray[5] = "123 Programmer's Home";
  6. $strarray[6] = "hello Programmer's Home";
  7. $strarray[7] = "123hello Programmer's Home";
  8. foreach ($strarray as $key->$value)
  9. {
  10. $x = mb_strlen($value,'gb2312');
  11. $y = strlen($value);
  12. echo $strarray[$key]. ' '.$x.' '.$y.' }
  13. ?>
Copy code

operation result: hello 5 5 123456 6 6 123hello 8 8 Programmer's Home 2 4 123 Programmer’s Home 5 7 hello programmer home 7 9 123hello Programmer’s Home 10 12

PHP does not have a direct function to determine whether a string is pure English or pure Chinese characters or a mixture of Chinese and English. You can only write the function yourself. In order to realize this function, it is necessary to understand the Chinese character encoding occupancy of the character set. At present, the more commonly used character sets in China are UTF8 and GBK. Each Chinese character in UTF8 is equal to 3 lengths; Each Chinese character in GBK is equal to 2 lengths;

Using the above differences between Chinese characters and English, we can use the mb_strlen function and strlen function to calculate two sets of length numbers respectively, and then perform operations according to the rules to determine the type of the string.

UTF-8 example

  1. /**
  2. * PHP determines whether the string is pure Chinese characters OR pure English OR mixed Chinese and English
  3. */
  4. echo '';
  5. function utf8_str($str){
  6. $mb = mb_strlen ($str,'utf-8');
  7. $st = strlen($str);
  8. if($st==$mb)
  9. return 'Pure English';
  10. if($st%$mb==0 && $st%3==0)
  11. return 'Pure Chinese';
  12. return 'Chinese-English Mixed';
  13. }
  14. $str = 'Blog';
  15. echo 'String: '.$str.', is '.utf8_str($str).'';
  16. ?>
Copy code

GBK method

  1. function gbk_str($str){
  2. $mb = mb_strlen($str,'gbk');
  3. $st = strlen($str);
  4. if($st==$ mb)
  5. return 'Pure English';
  6. if($st%$mb==0 && $st%2==0)
  7. return 'Pure Chinese characters';
  8. return 'Mixed Chinese and English';
  9. }
  10. ?>
Copy code


source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template