ホームページ >バックエンド開発 >PHPチュートリアル >文字列内の中国語の文字数をチェックする PHP プログラムの作成例を共有する、_PHP チュートリアル

文字列内の中国語の文字数をチェックする PHP プログラムの作成例を共有する、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:56:31845ブラウズ

文字列内の中国語の文字数をチェックするための PHP プログラムの作成例を共有します。

場合によっては、文字列に含まれる単語の数を計算する必要があります。純粋な英語の文字列の場合、単語の数は次のとおりです。文字列の長さには
を使用します strlen 関数を使用して取得できますが、文字列に漢字が含まれている場合はどうなるでしょうか。 mb_strlen も実装できますが、残念ながら拡張機能がインストールされていないので、自分で実装してください。

PHP には一般に必要な拡張機能があり、mb_strlen を使用して文字列内の単語数を取得できます。使用方法は一般的に次のとおりです。 リーリー

期待どおりの文字列長を取得します: 7.

mb 拡張機能がインストールされていない場合はどうなりますか?自分で実装してください。

まず、文字列は文字で構成され、文字はバイトで表されるという事実を理解する必要があります。英語の文字の ASCII コードは 128 未満であるため、バイトで表されます。バイトの ASCII コードが 127 を超える場合、現在のバイトが完全な文字ではないことを意味します。

例えば


リーリー

の $str{0} は最初のバイトを取得できます。それが何であるかを見てみましょう:

リーリー

は意味不明です、それはただの

です
コードをコピーします コードは次のとおりです: あなた ワードのバイトの 1 つ、つまり

コードをコピーします コードは次のとおりです: あなた この文字は複数のバイトで構成されています。これを試してみましょう:
リーリー

あなた

ご覧のとおり、3 バイトを結合して出力すると、完全な
になります。
コードをコピーします コードは次のとおりです: あなた

なぜここに 2 バイトや 4 バイトではなく 3 バイトがあるのか​​というと、これは文字列のエンコードによって異なります。PHP では、utf8 文字は gbk エンコードの場合は 2 バイトで表現されます。エンコーディングとバイトの関係については、このトピックは比較的大きいため、1 つの記事で説明することはできません。この記事を参照してください: 文字エンコーディングに関するメモ: ascii、unicode、および utf8。

これを理解した上で、単語数チェック関数を自分で書くことができます。一般的なプロセスは次のとおりです。

1.For ループはバイトを走査します。 2. バイトエンコーディングが >= 0x80 であるかどうかを判断し、そうであれば N バイトをスキップします

参考のために、gbk または utf8 文字列の長さを決定できる簡単な関数を書きました:

リーリー

興味があるかもしれない記事:

PHP エコー文字列の接続形式
  • PHP は配列を使用して、文字列内の一致する項目を順番に置き換えます
  • substr_count() 関数で部分文字列の出現数を取得する方法PHP の
  • PHP の strncmp() 関数は、2 つの文字列の最初の 2 文字が等しいかどうかを比較します。
  • Strnatcmp() 関数 PHP の「自然ソート アルゴリズム」は、文字列比較の使用分析を実行します (strcmp 関数の比較)
  • strcmp( PHP の ) と strcasecmp ()関数文字列比較の使用分析
  • PHP での substr 関数文字列インターセプトの使用分析
  • PHP で文字列のエスケープと復元を実装するための addslashes() とtripslashes() の使用例
  • PHP の暗号化と復元の詳細な説明ソース コードを含む復号化文字列関数 ダウンロード
  • PHP は、共有する文字列内の中国語、英語、または数字の文字をインターセプトする例を指定します

http://www.bkjia.com/PHPjc/1111912.html

tru​​ehttp://www.bkjia.com/PHPjc/1111912.html技術記事文字列内の中国語の文字数をチェックする PHP プログラムの作成例を共有します。純粋な英語の文字列の場合、単語数は文字列と同じです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。