現在の位置: ホーム> 最新記事一覧> StriposとStrposの違いは何ですか?

StriposとStrposの違いは何ですか?

M66 2025-05-17

PHPプログラミングでは、サブストリングが別の文字列に存在するかどうかを判断するなど、文字列検索の必要性に遭遇することがよくあります。 PHPはこれに複数の組み込み関数を提供し、最も一般的に使用される2つはstrpos()strpos()です。それらの使用法は非常によく似ていますが、重要な違いで振る舞います。それがケースに敏感かどうか。

1。Strpos () :ケースに敏感な文字列検索

strpos()は、文字列が最初に別の文字列に表示される場所を見つけるために使用されます。この関数はケースに敏感です。

文法:

 int|false strpos(string $haystack, string $needle, int $offset = 0)
  • $ haystackは、検索するターゲット文字列です。

  • $針は探しているサブストリングです。

  • $ offsetはオプションの開始位置です。

例:

 $pos = strpos("Welcome to m66.net", "M");
if ($pos !== false) {
    echo "Found at position $pos";
} else {
    echo "Not found";
}

出力は次のとおりです。

 Not found

その理由は、 「m」が大文字であり、元の文字列の「m」が小文字であるため、 strpos()は厳密に敏感であるため、 falseを返します。

2。StripoS () :ケースと感受性の文字列検索

strpos()とは異なり、 strpos()はケースに依存しないバージョンです。それは論理的に正確に一貫しており、文字の上限と小文字を無視するだけです。

文法:

 int|false stripos(string $haystack, string $needle, int $offset = 0)

例:

 $pos = stripos("Welcome to m66.net", "M");
if ($pos !== false) {
    echo "Found at position $pos";
} else {
    echo "Not found";
}

このコードは出力されます:

 Found at position 0

Stripos()「M」「M」を同じ文字として扱うからです。

3。いつ使用する必要がありますか?

選択する関数は、特定のニーズに依存します。

  • 変数に特定のケーススペル(パスワード検証など)が含まれるかどうかを確認するなど、正確な一致が必要な場合は、 Strpos()を使用する方が適切です。

  • キーワードが存在するかどうかを判断したい場合、高度と小文字(検索機能など)を気にしない場合、 StripOS()がより便利です。

実用的な例:敏感な単語のフィルタリング(ケースの鈍感)

 $comment = "This is a stupid comment.";
$badword = "Stupid";

if (stripos($comment, $badword) !== false) {
    echo "Warning: Inappropriate language detected.";
}

これにより、さまざまなケースの組み合わせで敏感な単語を効果的に検出できます。

要約します

関数大文字と小文字を区別戻り値タイプ使用
strpos()はいintまたはfalse正確な検索
spripos()いいえintまたはfalseケース検索を無視します

それらの違いを理解し、適切なシナリオでそれらを使用すると、コードがより正確で効率的になります。この記事が、これら2つの機能の違いをよりよく理解できることを願っています!