ホームページ > バックエンド開発 > PHPの問題 > PHPで文字列の長さを調べる関数は何ですか

PHPで文字列の長さを調べる関数は何ですか

青灯夜游
リリース: 2023-03-16 13:06:01
オリジナル
5880 人が閲覧しました

php には、文字列の長さを見つけるための 2 つの関数があります: 1. strlen() 関数は英語の文字列の長さを計算でき、構文は「strlen($string)」です; 2. mb_strlen () 関数は文字エンコーディングを設定することで、英語文字列、中国語文字列、または中国語と英語の混合文字列の長さを計算できます。構文は「mb_strlen($string,"文字エンコーディング")」です。

PHPで文字列の長さを調べる関数は何ですか

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、DELL G3 コンピューター

PHP で長さを計算するためによく使用されます。 strlen() 関数と mb_strlen() 関数という 2 つの関数があります。すべて英語の文字列を処理する場合、これら 2 つの関数の効果は同じですが、中国語と英語が混在した文字列、または純粋な中国語の文字列を処理する場合、これら 2 つの関数にはいくつかの違いがあります。 ##strlen() 関数は英語の文字列の長さを計算できますが、中国語と英語が混在した文字列、または純粋な中国語の文字列の場合、長さを正確に計算できません。

  • mb_strlen() 関数は、英語の文字列、中国語の文字列、または中国語と英語の混合文字列の長さを計算できます。

  • 1. strlen() 関数は文字列の長さを検出します

strlen() 関数は、指定された文字列の長さを返すことができます。構文形式は次のとおりです。

strlen($string)
ログイン後にコピー

パラメータ $string は、長さを計算する必要がある文字列です。 $string が空の場合は 0 を返します。

  • 注: strlen() 関数では、数字、英語、小数点、下線、スペースは 1 文字を占めますが、GB2312 でエンコードされた中国語文字は 2 文字を占めます。 -8 でエンコードされた漢字の長さは 3 文字です。
例:

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello world!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.strlen($str).&#39;<br>&#39;;
?>
ログイン後にコピー

$str 文字列には、10 個の英字、1 個のスペース、1 個の英語の感嘆符、合計 12 文字が含まれるため、出力の長さは 12 になります。

しかし、strlen() 関数は、中国語文字列の長さの計算には適していません。この関数では、GB2312 でエンコードされた 1 つの中国語文字が長さ 2 文字、1 つの UTF- を占めるためです。 8 エンコードされた中国語文字の長さは 3 文字です。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello 你好!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.strlen($str).&#39;<br>&#39;;
?>
ログイン後にコピー
PHPで文字列の長さを調べる関数は何ですか

2. mb_strlen() 関数は文字列の長さを検出しますPHPで文字列の長さを調べる関数は何ですか

mb_strlen() 関数は文字列の長さを返すこともできます。構文形式は次のとおりです:

mb_strlen($str [, $encoding = mb_internal_encoding()])
ログイン後にコピー

$str は長さを計算する必要がある文字列です

  • $encoding はオプションのパラメータ。文字エンコーディングです。省略した場合は、内部の文字エンコーディングが使用されます。

  • mb_strlen() 関数の戻り値は、$encoding エンコーディングを使用した文字列 $str に含まれる文字数です。$encoding が無効な場合は、false が返されます。

注: strlen() 関数とは異なり、mb_strlen() 関数では、漢字、英語、数字、小数点、アンダースコア、スペースのいずれであっても、長さは 1 文字のみを占めます。

[例] mb_strlen()関数を使用して文字列長を取得します。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello 你好!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,"utf-8").&#39;<br>&#39;;

$str = "欢迎来到PHP中文网!";
echo &#39;<br>字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,&#39;utf-8&#39;).&#39;<br>&#39;;
?>
ログイン後にコピー

対応する

$encodingPHPで文字列の長さを調べる関数は何ですか パラメータを設定することで、中国語の文字列の長さの問題をうまく処理できることがわかります。

推奨学習: 「PHP ビデオ チュートリアル

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート