ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルの strlen() と mb_strlen() の違いの簡単な分析
PHP で文字列の長さを計算する一般的な関数は、strlen と mb_strlen です。文字がすべて英語の場合、この 2 つは同じです。ここでは主に中国語と英語が混在した場合の 2 つの計算結果を比較します。
まず例を見てみましょう:
これら 2 つの関数を使用すると、中国語と英語が混在した文字列の占有率を共同で計算できます (中国語の文字の占有率は 2、英語の文字の占有率は 1)
PHP の組み込みの文字列長関数 strlen は、中国語の文字列を正しく処理できません。文字列が占有するバイト数のみを取得します。
mb_strlen 関数を使用すると、この問題をより適切に解決できます。
mb_strlen の使用法は strlen と似ていますが、文字エンコーディングを指定する 2 番目のオプションのパラメーターがある点が異なります。
たとえば、UTF-8 文字列 $str の長さを取得するには、mb_strlen($str,'UTF-8') を使用できます。 2 番目のパラメータを省略した場合は、PHP の内部エンコーディングが使用されます。内部エンコーディングは、mb_internal_encoding() 関数を通じて取得できます。
注意: mb_strlen は PHP のコア関数ではありません。使用する前に php_mbstring.dll が php.ini にロードされていることを確認する必要があります。 つまり、「extension=php_mbstring.dll」という行が存在し、コメントアウトされていないことを確認してください。そうしないと、未定義の関数の問題が発生します。
http://www.bkjia.com/PHPjc/825400.html