PHP関数を利用して中英文文字列の長さを計算する方法
928 ワード
この例では,PHP関数を用いて中英文文字列長を計算する方法について述べる.皆さんの参考にしてください.具体的な実現方法は以下の通りである.
一般的には、英語の文字が1バイトを占め、中国語の文字gbkが2文字を占め、utf 8が3文字を占めていることが知られています.php計算文字列の長さはstrlen()関数という印象がありますが、そうではありません.文字の長さではなくバイトの長さを計算しています.では、どのようにして1文字列の文字の長さを取得しますか.そしてmb_strlen().
具体的なコードは以下の通りです.
残念なことに、mbシリーズの関数はPHPコア関数ではなく、デフォルトでは開いていない.文字列を文字個体に分解することで、文字の個数を文字列の長さに計算する超簡単な方法もある.コードは以下の通りである.
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.
一般的には、英語の文字が1バイトを占め、中国語の文字gbkが2文字を占め、utf 8が3文字を占めていることが知られています.php計算文字列の長さはstrlen()関数という印象がありますが、そうではありません.文字の長さではなくバイトの長さを計算しています.では、どのようにして1文字列の文字の長さを取得しますか.そしてmb_strlen().
具体的なコードは以下の通りです.
echo $str = 'PHP ';
echo strlen($str); //3*1+3*3=12
echo mb_strlen($str, 'gb2312'); //3*1+3*2=9
echo mb_strlen($str, 'utf-8'); //6
残念なことに、mbシリーズの関数はPHPコア関数ではなく、デフォルトでは開いていない.文字列を文字個体に分解することで、文字の個数を文字列の長さに計算する超簡単な方法もある.コードは以下の通りである.
function _strlen($str)
{
preg_match_all("/./us", $str, $matches);
return count(current($matches));
}
echo _strlen("PHP "); //6
?>
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.