開発プロセス中に、文字列内の漢字の数をカウントする必要があることがよくあります。 PHPは、漢字の長さを正確に計算できる関数MB_STRLENを提供します。次に、簡単な例を示します。
上記のコードでは、漢字を含む文字列$文字列を定義し、 MB_STRLEN関数を使用して中国語の単語数を取得します。エンコーディング方法は「UTF-8」に設定されており、漢字を正しくカウントできるようにすることに注意してください。
中国語と英語のキャラクターを数えると、結果は通常異なります。たとえば、文字列「PHPリアルタイムキャラクターカウント」には10個の漢字が含まれており、 Strlenを使用してこの文字列の英語文字の数を計算すると、結果は18です。
上記のコードを通して、 Strlen関数を使用してカウントされる文字の長さには、英語と漢字の異なるエンコーディング方法が含まれていることがわかります。
中国語と英語のキャラクターの数を計算する場合、 Strlen関数はMB_STRLEN関数とは異なります。具体的には、 strlenはバイトの長さを計算するために使用され、 MB_STRLENは文字の長さを計算するために使用されます。
上記のように、 Strlenは68の結果を返します。これは、文字の数ではなく、その文字列のバイト数です。
PHPの中国語と英語のキャラクターの処理方法は異なることに注意する必要があります。 Strlen関数では、漢字は通常3バイトを占有するため、文字の数とバイトに違いがあります。これを次のコードで確認できます。
このコードを通じて、英語の文字の数と漢字の数の間に大きな違いがあることが明確にわかります。
要約すると、 Strlenは主に英語の文字に使用されるバイトの長さの計算に適していますが、 MB_STRLENは漢字の処理に適しており、正確な文字の長さを返すことができます。 2つの違いを理解することは、混合言語文字列を処理するために非常に重要です。