ホームページ >バックエンド開発 >PHPの問題 >PHPで文字列の長さを知る方法

PHPで文字列の長さを知る方法

醉折花枝作酒筹
醉折花枝作酒筹オリジナル
2021-08-06 14:49:176260ブラウズ

前回の記事では、「自然な」アルゴリズムを使用して文字列の類似点と相違点を知る方法について学習しました。必要な場合は、「 文字列の類似点と相違点を比較する方法」を参照してください。 php の「自然な」アルゴリズム (大文字と小文字が区別されます) 》。今回は文字列の長さを取得する方法を紹介しますので、必要な場合は参考にしてください。

php では、文字列を理解して何かを行うために、文字列の長さを知る必要があります。それでは早速、文字列関数を取得する方法を見てみましょう。

まず、小さな例を見てみましょう。

<?php
echo strlen("World grand, welcome home!");
?>

この小さな例の結果は次のとおりです

PHPで文字列の長さを知る方法

この回答を見たとき、友達が最初からこの文字列を入れたのではないかと思いました最後まで数えてください。まず最初に言っておきますが、一度カウントする必要があります。この関数が間違っていたらどうなるでしょうか?そうしたらとても達成感を感じます。しかし、最初から最後まで数えてみたところ、この関数の長さは実際には 26 であることがわかりました。

この機能自体は問題ないので、この機能についてお話しましょう。

strlen() 関数は、文字列の長さ (バイト数) を返します。 strlen() は、文字列が終了するタイミングを決定することが重要な場合に、ループやその他の関数でよく使用されます。 (たとえば、ループでは、文字列の最後の文字の後でループを終了する必要があります)

別の例を見てみましょう。

<?php
echo strlen("世界盛大,欢迎回家!");
?>

結果は

PHPで文字列の長さを知る方法

答えは上記の例とは異なりますね。パラメータが中国語と英語になっていますが、それほど大きな違いはありますか?漢字と句読点は明らかに 10 文字しかありませんが、実際には 30 文字になるのはなぜですか?考えたことはありますか?

もちろん、中国語の単語と英語の単語の間には大きな違いがあります。また、各文字が占めるバイト数は、さまざまなエンコーディングによって異なります。

ASCII コードでは、1 つの英語文字 (大文字と小文字に関係なく) が 1 バイトのスペースを占有し、1 つの中国語文字が占有します。 2バイトのスペース。コンピューターでデジタル単位として使用される 2 進数のシーケンスは、通常、10 進数に変換された 8 ビットの 2 進数です。最小値は -128、最大値は 127 です。たとえば、ASCII コードはバイトです。

UTF-8 エンコーディングでは、英語の 1 文字は 1 バイトに相当し、中国語の 1 文字 (繁体字中国語を含む) は 3 バイトに相当します。中国語の句読点は 3 バイトを占め、英語の句読点は 1 バイトを占めます。

Unicode エンコードでは、1 つの英語の単語は 2 バイトに相当し、1 つの中国語文字 (繁体字中国語を含む) は 2 バイトに相当します。中国語の句読点は 2 バイトを占め、英語の句読点は 2 バイトを占めます。

この例で使用されているエンコーディングは utf-8 であるため、1 つの中国語文字は 3 バイトを占めます。つまり、10 文字の漢字の長さは最大 30 文字になります。

以上です。他に知りたいことがある場合は、ここをクリックしてください。 → →phpビデオチュートリアル

以上がPHPで文字列の長さを知る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。