PHPで漢字の数を数える方法

怪我咯
怪我咯オリジナル
2017-06-29 10:02:195689ブラウズ

PHP で中国語の文字数を正しく数える方法は?これは、私を長い間悩ませてきた問題です。PHP には、文字列の長さを計算できる関数がたくさんあります。たとえば、次の例では、

strlen
mb_strlen
mb_strwidth

の3つの関数が使用されています。統計文字列の長さを見てみましょう:

[code]echo strlen("你好ABC") . "";
# 输出 9
echo mb_strlen("你好ABC", 'UTF-8') . "";
# 输出 5
echo mb_strwidth("你好ABC") . "";
#输出 7

上記のテストから、中国語に関係なく、

strlen

漢字は 3 バイトにカウントされることがわかります。英語の場合は

1

バイトとしてカウントされ、

mb_strlen
は中国語を

2

バイトとしてカウントするため、

mb_strwidth
が必要なものになります:

中国語の場合は 2 バイト、英語の場合は 1 バイト

文字列をインターセプトするには

mb_strwidth

を使用することもお勧めします。これも ​​中国語の場合は 2 バイト、英語の場合は 1 バイト

の方法に従って計算され、単語数がインターセプトの要件を超える場合、この関数は次のことができます。また、最後に「…」も自動的に追加されます。

mb_strimwidth

最後に「utf-8」エンコーディングパラメータを追加すると、中国語の文字化けインターセプトの問題を回避できることに注意してください。

以上がPHPで漢字の数を数える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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