ホームページ  >  記事  >  バックエンド開発  >  UTF-8 および GBK エンコーディングで文字列の長さを取得する PHP 関数

UTF-8 および GBK エンコーディングで文字列の長さを取得する PHP 関数

WBOY
WBOYオリジナル
2016-07-25 09:07:11969ブラウズ
  1. /*

  2. * カウント文字列長
  3. *@param $str カウント文字列
  4. */
  5. function sstrlen($str) {
  6. global $charset;
  7. $n = 0; $p = 0; $c = ”;
  8. $len = strlen($str);
  9. if($charset == 'utf-8') {
  10. for($i = 0; $i < ; $len ; $i++) {
  11. $c = ord($str{$i});
  12. if($c > 252) {
  13. $p = 5;
  14. } elseif($c > 248) {
  15. $p = 4;
  16. } elseif($c > 240) {
  17. $p = 3;
  18. } elseif($c > 224) {
  19. $p = 2;
  20. } elseif($c > 192) {
  21. $p = 1;
  22. } else {
  23. $p = 0;
  24. }
  25. $i+=$p;$n++;
  26. }
  27. } else {
  28. for($i = 0; $i < $len; $ i++) {
  29. $c = ord($str{$i});
  30. if($c > 127) {
  31. $p = 1;
  32. } else {
  33. $p = 0;
  34. }
  35. $i+=$ p;$ n++;
  36. }
  37. }

  38. return $n;

  39. }
  40. ?>

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。