この記事では、PHP カスタム関数を使用して中国語の文字列の長さをカウントする方法を主に紹介し、中国語の判定、エンコード、操作に関する PHP の操作スキルをサンプルの形式でまとめて分析します。中国語の文字は 2 文字として計算されます 英語の文字は 1 文字として計算されます
code
/** * 可以统计中文字符串长度的函数 * */ function abslength($str) { $len=strlen($str); $i=0; while($i<$len) { if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i])) { $i+=2; } else { $i+=1; } } return $i; }
もう 1 つ: PHP は文字の長さを決定します: 中国語、英語、数字。
これを行うには多くの方法があります。 簡単なものを記録します。
mb_strlen($str, 'GBK');
function StrLenW($str) { $count = 0; $len = strlen($str); for($i=0; $i<$len; $i++,$count++) if(ord($str[$i])>=128) $i++; return $count; }
/**作用:统计字符长度包括中文、英文、数字 * 参数:需要进行统计的字符串、编码格式目前系统统一使用UTF-8 * 修改记录: $str = "kds"; echo sstrlen($str,'utf-8'); * */ function sstrlen($str,$charset) { $n = 0; $p = 0; $c = ''; $len = strlen($str); if($charset == 'utf-8') { for($i = 0; $i < $len; $i++) { $c = ord($str{$i}); if($c > 252) { $p = 5; } elseif($c > 248) { $p = 4; } elseif($c > 240) { $p = 3; } elseif($c > 224) { $p = 2; } elseif($c > 192) { $p = 1; } else { $p = 0; } $i+=$p;$n++; } } else { for($i = 0; $i < $len; $i++) { $c = ord($str{$i}); if($c > 127) { $p = 1; } else { $p = 0; } $i+=$p;$n++; } } return $n; }
関連する推奨事項:
ファイルを作成し、そのファイルにデータを書き込み、実装コードを上書きして追加する_phpスキル
文字列に別の文字列メソッドが含まれているかどうかを単純に判断する_phpヒント
php form_phpの同じ名前を持つ複数の入力要素の値を取得するCIコード
以上がPHPカスタム関数を使って中国語の文字列の長さをカウントする方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。