ホームページ  >  記事  >  バックエンド開発  >  入力が純粋な数字、英語、漢字などであるかどうかを判断します。

入力が純粋な数字、英語、漢字などであるかどうかを判断します。

WBOY
WBOYオリジナル
2016-07-25 09:11:391114ブラウズ
PHPのmb_strlen関数やstrlen関数を使うと文字列の構造を簡単に知ることができます。 それはすべて英語ですか、英語と中国語の混合ですか、それとも純粋な漢字ですか。簡単に説明すると以下の通りです(上記サンプルプログラム) 1. strlen によって返された文字の長さが、現在のエンコーディングに基づいて mb_strlen によって計算された長さと同じである場合。 Zhizhi、純粋な英語の文字列であると判断できます。 2. strlen によって返された文字の長さが、現在のエンコーディングに基づいて mb_strlen によって計算された長さと一致しない場合、 そして、strlen の戻り値は mb_strlen の戻り値と等しく、結果は 0 となり、すべて漢字の文字列であると判断できます。 3. strlen によって返された文字の長さが、現在のエンコーディングに基づいて mb_strlen によって計算された長さと一致しない場合、 そして、mb_strlen の戻り値の余り以降の strlen の戻り値が 0 ではないので、英語と中国語の混合文字列であると判断できます。
    /********
  1. 入力が純粋な数字なのか、英語なのか、漢字なのかを判断します
  2. PHPのmb_strlen関数とstrlen関数を使うと、文字列の構成が簡単に分かります
  3. それがすべて英語なのか、英語が混在しているのかおよび中国語、または純粋な漢字。簡単に説明すると以下の通りです(上記サンプルプログラム)
  4. 1. strlen で返される文字長が、現在のエンコーディングに基づいて mb_strlen で計算された長さと一致する場合、純粋な英語文字列であると判断できます。
  5. 2. strlen が返す文字長が、現在のエンコーディングに基づいて mb_strlen が計算した長さと矛盾しており、
  6. strlen の戻り値の余りと mb_strlen の戻り値が 0 の場合、すべての漢字の文字列。
  7. 3. strlen が返す文字長が、現在のエンコーディングに基づいて mb_strlen が計算した長さと矛盾しており、
  8. mb_strlen の戻り値の余り以降の strlen の戻り値が 0 でない場合、英語と中国語が混在した文字列。
  9. *
  10. * ****************/
  11. $str = "456abc";
  12. $x = mb_strlen($str,'gb2312'); "-----456abc----
    ";
  13. echo "$x".'
    '
  14. echo "$y".'
    ';
  15. $str = "456私は中国人です
    ";
  16. $x = mb_strlen($str,'gb2312');
  17. $y = strlen($str);私は中国人の abc です----
    ";
  18. echo "$x".'
    '; echo "$y".'
    ';
  19. $str = "私は中国人であり、祖国を愛しています";
  20. $x = mb_strlen($str,'gb2312')
  21. $y = strlen($str);私の祖国----
    "; echo "$x".'
    ';
  22. echo "$y".'
    '; $str = "私";
  23. $x = mb_strlen($str,'gb2312');
  24. $y = strlen($str);
  25. echo "------私----
    "; echo " $x".'
    ';
  26. echo "$y".'
    ';
  27. $str = "我ab";
  28. $x = mb_strlen($str,' gb2312' );
  29. $y = strlen($str);
  30. echo "------私は----
    "; 「$y」をエコーし​​ます。'
  31. ?>
  32. コードをコピーします
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。