PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPで文字列内に部分文字列が含まれるかチェックする方法

PHPで文字列の中に特定の部分文字列(サブストリング)が含まれているかどうかを確認するには、strpos() 関数を使用するのが一般的です。ここでは、具体的なコード例をもとにその方法を解説します。

例1:strpos() を使った部分文字列の検索

<?php
   $subStr = "Mother";
   $str = "How I Met Your Mother";
   echo "String = $str";
   echo "\nSubstring = $subStr";
   if(strpos($str, $subStr) !== false){
      echo "\nSubstring found successfully";
   } else{
      echo "\nSubstring not found";
   }
?>

出力結果

上記のコードを実行すると、次のような出力が得られます。

String = How I Met Your Mother
Substring = Mother
Substring found successfully

ポイント:!== false と比較する理由

strpos() 関数は、部分文字列が見つかった位置(インデックス)を返します。もし部分文字列が文字列の先頭(0番目)に見つかった場合、戻り値は 0 になります。0 は緩い比較(==)では false と同等に評価されてしまうため、「見つからない」と誤判定される恐れがあります。そのため、必ず厳密な比較演算子 !== を使うことが重要です。

例2:部分文字列が見つからない場合

続いて、指定した部分文字列が対象の文字列に存在しない場合の例を見てみましょう。

<?php
   $subStr = "Ocean";
   $str = "In the Heart of Sea";
   echo "String = $str";
   echo "\nSubstring = $subStr";
   if(strpos($str, $subStr) !== false){
      echo "\nSubstring found successfully";
   } else{
      echo "\nSubstring not found";
   }
?>

出力結果

このコードを実行すると、次の出力が得られます。

String = In the Heart of Sea
Substring = Ocean
Substring not found

補足:PHP 8以降なら str_contains() が便利

PHP 8.0以降では、さらに直感的に記述できる str_contains() 関数が利用できます。この関数は、部分文字列が含まれていれば true、含まれていなければ false を返すため、位置情報との比較処理が不要になります。

<?php
   $str = "How I Met Your Mother";
   if(str_contains($str, "Mother")){
      echo "Substring found successfully";
   }
?>

このように、PHPで部分文字列の有無をチェックする場面では、PHP 7以前の環境では strpos()!== false の組み合わせ、PHP 8以降では str_contains() を使い分けると、安全で読みやすいコードになります。

  1. Javaで文字列に部分文字列が含まれているか確認する方法|contains()の使い方を解説

    はじめに この記事では、文字列の中に特定の部分文字列が含まれているかどうかを確認する方法を解説します。 まず用語を整理しておきましょう。文字列(String)とは、1つ以上の文字から構成され、ダブルクォート( )で囲まれたデータ型のことです。そして、その文字列の一部を切り出したものを部分文字列(substring)と呼びます。 Javaでは、Stringクラスが提供する contains() メソッドを使うことで、部分文字列の有無を簡単に判定できます。このメソッドは、引数に指定した文字列が含まれていれば true、含まれていなければ false を返します。 入力と出力のイメージ 入力の例:

  2. Pythonで文字列に部分文字列が含まれているか確認する3つの方法

    Pythonでデータ分析を行っていると、ある部分文字列が別の大きな文字列の中に含まれているかどうかを確認したい場面によく出会います。本記事では、代表的な3つの方法(find()、in演算子、count())を使って部分文字列の存在をチェックする方法を、具体的なコード例とともに解説します。 方法1:find() メソッドを使う find() メソッドは、指定した値が文字列内で最初に出現する位置(インデックス)を返します。値が見つからなかった場合は -1 を返します。この性質を利用して、if文と組み合わせることで部分文字列が含まれているかを判定できます。 コード例 Astring = &quo