ポイントを学ぶことは
、中国の長さを取得STRLEN
mb_strlenとし
<?php
$name="鸣人";
print "姓名的长度为:".strlen($name);
?>
出力は次のとおりです。長さの名前:6
この問題がある理由を探るために:
PHPがビルトインstrlenを文字列の長さの関数()適切に中国の文字列を処理していない、バイトの文字列の数は、それが唯一の取得占領しました。
中国語GB2312符号化のため、strlenを得られた値は、文字の2倍の数である
中国語のUTF-8エンコーディングのために、(UTF-8エンコーディングで、文字3バイト)の3倍の差があります
mb_strlen付き
<?php
$name="鸣人";
print "姓名的长度为:".mb_strlen($name,"utf-8");
?>
長さの名称:2
mb_strlen使用量と、それは2番目のオプションのパラメータは、文字エンコーディングを指定していることを除いて、同様のstrlenを。
注、mb_strlenないPHPのコア機能は、必要が「拡張子= php_mbstring.dll」があることを確実にすること、php.iniでロードされたphp_mbstring.dllを使用する前に確認することと、この行がコメントアウトされていないことを、そうでない場合が不定となります問題のある機能。