stringの長さを計算するためにPHPで使用される一般的な関数は、strlenとmb_strlenです。文字がすべて英語の場合、それらは同じです。ここでは主に中国語と英語が混在した場合の 2 つの計算結果を比較します。
PHP では、strlen と mb_strlen は文字列の長さを調べる関数です。成功すると、文字列の長さが返されます。 0を返します。 mb_strlen — 文字列の長さを取得します。Syntaxmb_strlen ($str, $encoding)
長さをチェックする文字列。
encoding パラメータは文字エンコーディングです。省略した場合は、内部文字エンコーディングが使用されます。
戻り値
文字列strに含まれる文字数をエンコードエンコードで返します。 マルチバイト文字は 1 としてカウントされます。
指定されたエンコーディングが無効な場合は FALSE を返します。以下は 2 つの違いを説明する例です。
最初に例を見てください:
<?php //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($str,'utf8').'<br>';//6 echo mb_strlen($str,'gbk').'<br>';//8 echo mb_strlen($str,'gb2312').'<br>';//10 ?>
echo (strlen($str) + mb_strlen($str,'UTF8')) / 2;
echo mb_internal_encoding();
string
.dll が php.ini にロードされていることを確認する必要があります。つまり、「extension=」という行が含まれていることを確認する必要があります。 php_mbstring.dll" は存在しますが、コメント化されていません そうしないと、未定義の関数の問題が発生します。
以上がPHPのstrlenとmb_strlenの違いをご存知ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。