PHP関数を使用して中国語と英語の文字列の長さを計算する方法
この記事の例では、PHP 関数を使用して中国語と英語の文字列の長さを計算する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
一般的に、英語の文字は 1 バイトを占め、中国語の gbk は 2 文字を占め、utf8 は 3 文字を占めることは誰もが知っています。PHP は strlen() 関数を使用して文字列の長さを計算すると考えています。文字の長さではなくバイトの長さを計算します。では、文字列内の文字の長さを取得するにはどうすればよいでしょうか。 mb_strlen()もあります
具体的なコードは次のとおりです:
コードをコピーします コードは次のとおりです:
echo $str = 'PHP Diandiantong';
エコー 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 のコア機能ではないため、デフォルトでは有効になっていないことです。正規表現を使用して文字列を個々の文字に分解する非常に簡単な方法もあります。コードは次のとおりです:
コードをコピーします コードは次のとおりです:
関数 _strlen($str)
{
Preg_match_all("/./us", $str, $matches);
戻り値 count(current($matches));
}
echo _strlen("PHP ディアンディアントン"); //6
?>
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。