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

PHPで文字列を比較する関数とは何ですか

青灯夜游
青灯夜游オリジナル
2022-08-31 19:31:212263ブラウズ

php 文字列比較関数: 1. strcasecmp()、2 つの文字列の大文字と小文字を区別しない比較; 2. strcmp()、2 つの文字列の大文字と小文字を区別する比較; 3. strcoll( )、次に従って 2 つの文字列を比較します。ローカル設定へ; 4. strnatcasecmp()、これは大文字と小文字を区別せず、「自然ソート」アルゴリズムを使用して 2 つの文字列を比較します; 5. strnatcmp()、これは大文字と小文字を区別し、「自然ソート」アルゴリズムを使用して 2 つの文字列を比較します文字列; 2 つの文字列を比較する「自然順序付け」アルゴリズム。

PHPで文字列を比較する関数とは何ですか

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

php にはさまざまなビルドが含まれています-in 文字列 比較関数

#FunctionDescriptionstrcasecmp()2 つの文字列を比較します (大文字と小文字は区別されません)。 strcmp()2 つの文字列を比較します (大文字と小文字は区別されます)。 strcoll()2 つの文字列を比較します (ローカル設定に従って)。 strnatcasecmp() 「自然順序付け」アルゴリズムを使用して 2 つの文字列を比較します (大文字と小文字は区別されません)。 strnatcmp()「自然順序付け」アルゴリズムを使用して 2 つの文字列を比較します (大文字と小文字は区別されます)。 strncasecmp()最初の n 文字の文字列比較 (大文字と小文字は区別されません)。 strncmp()最初の n 文字の文字列比較 (大文字と小文字は区別されます)。 substr_compare()指定された開始位置から始まる 2 つの文字列を比較します (バイナリ セーフで大文字と小文字が区別されます)。

#一般的に使用される文字列比較関数

1. strcmp() 関数 -- with大文字と小文字を区別して 2 つの文字列を比較します。

strcmp(string1,string2)

2 つの文字列を比較する場合、if:

    ##If 2 つの文字列が等しい場合は、
  • 0

    が返されます。

  • string1 が string2 より小さい場合は、
  • が返されます。
  • string1 が string2 より大きい場合、
  • > 0

    の値が返されます;

  • 見てみましょう以下の例:
<?php
$str1="12";
$str2="12";
echo strcmp($str1,$str2)."<br>";

$str1="12";
$str2="13";
echo strcmp($str1,$str2)."<br>";

$str1="15";
$str2="13";
echo strcmp($str1,$str2)."<br>";
?>

出力:


PHPで文字列を比較する関数とは何ですか strcmp() 関数は、文字列を比較するときに大文字と小文字を区別します。

<?php
$str1="PHP中文网";
$str2="php中文网";
echo strcmp($str1,$str2)."<br>";
?>

出力結果:

-1

この機能を利用すると、Webサイトにアカウントを登録する際のユーザーパスワードの確認機能に利用できます(パスワードは通常大文字/小文字) -sensitive)、2 回入力したパスワードを比較して、一貫性があるかどうかを確認します。

<?php
header("Content-type:text/html;charset=utf-8");
$pwd1 = &#39;php124@qq&#39;;
$pwd2 = &#39;php124@QQ&#39;;
if(strcmp($pwd1, $pwd2) != 0){
    echo &#39;密码不匹配!&#39;;
} else {
    echo &#39;密码匹配!&#39;;
}
?>

2 つの文字列が完全に一致する場合にのみ、strcmp() 関数はそれらを等しいとみなします。上記の例では、$pwd1 と $pwd2 は大文字と小文字が異なるため、2 つの文字列は同じではありません。等しい。

PHPで文字列を比較する関数とは何ですかしかし、Web サイトの URL の比較など、文字列の値を比較するだけで大​​文字と小文字を区別したくない場合もあります。その場合の対処方法?簡単には、 strcasecmp() 関数を使用できます。

2. strcasecmp() 関数 - 大文字と小文字を区別しない方法で 2 つの文字列を比較します

strcasecmp() 関数は strcmp() 関数と似ています。 、戻り値も同じですが、唯一の違いは、strcasecmp() 関数が大文字と小文字を区別しないことです。

次の例を見てみましょう:

<?php
header("Content-type:text/html;charset=utf-8");
$url1="https://www.php.cn/";
$url2="HTTPS://WWW.PHP.CN/";
if(strcasecmp($url1, $url2) == 0){
        echo &#39;两个网址相同&#39;;
    } else {
        echo &#39;两个网址不同&#39;;
    }
?>

出力結果:

两个网址相同

3. strncasecmp() 関数 -- 大文字と小文字は区別されません

strncasecmp() 関数は 2 つの文字列を比較します (大文字と小文字は区別されません)。構文は次のとおりです。

strncasecmp(string1,string2,length)

##ParameterDescriptionstring1必須。比較する 2 番目の文字列を指定します。 必須。比較に使用する文字列あたりの文字数を指定します。

返回值:

  • 0 - 如果两个字符串相等

  • >0 - 如果 string1 大于 string2

示例:

<?php
echo strncasecmp("Hello world!","hello earth!",6);
?>

输出:

0

4、strnatcasecmp()函数--大小写不敏感

strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串(不区分大小写)。

在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

语法:

strnatcasecmp(string1,string2)

返回值:

  • 0 - 如果两个字符串相等

  • >0 - 如果 string1 大于 string2

示例:

<?php
echo strnatcasecmp("2Hello world!","10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("10Hello world!","2Hello WORLD!");
?>

输出:

-1
1

5、strncmp()函数--大小写敏感

strncmp() 函数比较两个字符串(区分大小写)。

该函数与 strcmp() 函数类似,不同的是,strcmp() 没有 length 参数(不能指定每个字符串用于比较的字符数)。

strncmp(string1,string2,length)
## #必須。比較する最初の文字列を指定します。 #string2
長さ
参数 描述
string1 必需。规定要比较的第一个字符串。
string2 必需。规定要比较的第二个字符串。
length 必需。规定每个字符串用于比较的字符数。

返回值和strcmp()  函数一样

<?php
header("Content-type:text/html;charset=utf-8");
$pwd1 = &#39;password&#39;;
$pwd2 = &#39;Password&#39;;
if(strncmp($pwd1, $pwd2,8) != 0){
    echo &#39;密码不匹配!&#39;;
} else {
    echo &#39;密码匹配!&#39;;
}
?>

PHPで文字列を比較する関数とは何ですか

推荐学习:《PHP视频教程

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

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