PHP で文字列が指定された文字列で始まるかどうかを確認する方法

Minahil Noor 2023年1月30日
  1. PHP で文字列が指定された文字列で始まるかどうかを確認するために substr() 関数を使用する
  2. PHP で strpos() 関数を使用して文字列が指定された文字列で始まるかどうかを確認する
  3. PHP で文字列が指定された文字列で始まるかどうかを確認するために strncmp() 関数を使用する
PHP で文字列が指定された文字列で始まるかどうかを確認する方法

この記事では、PHP で string が指定された string で始まるかどうかをチェックするメソッドを紹介します。

  • substr() 関数を使用する
  • strpos() 関数を使用する
  • strncmp() 関数を使用する

PHP で文字列が指定された文字列で始まるかどうかを確認するために substr() 関数を使用する

組み込み関数 substr() を使用して、部分文字列にアクセスします。string は入力として渡され、アクセスしたい部分文字列が返されます。この関数を使用して、string が特定の文字列で始まるかどうかを確認できます。この関数を使用するための正しい構文は次のとおりです

substr($string, $startPosition, $lengthOfSubstring);

この関数には 3つのパラメーターがあります。パラメータの詳細は以下の通りです。

パラメーター 説明
$string 必須 アクセスしたい部分文字列の元の文字列。
$startPosition 必須 整変数。これは、部分文字列が開始する位置を示します。
正の場合、部分文字列は文字列の左側から、つまり最初から始まります。
負の場合、部分文字列は最後から始まります。
$lengthOfSubstring オプション 整変数。これは、開始位置からのストリングの全長を示します。
省略された場合、開始位置から文字列の最後までの部分文字列が返されます。
これが負の場合、値に応じて末尾から文字列が削除されます。ゼロの場合、空の文字列が返されます。
<?php
  $string = "Mr. Peter";
  if(substr($string, 0, 3) === "Mr."){
      echo "The string starts with the desired substring.";
  }else 
      echo "The string does not start with the desired substring.";
?>

上記のコードでは、stringMr. で始まっているかどうかを確認します。

substr($string, 0, 3)

0 は部分文字列の開始インデックスです。つまり、部分文字列は指定された文字列の最初の文字から始まります。

3 は、返される部分文字列の長さが 3 であることを意味します。

string の先頭が Mr. と同じであれば、The string starts with the desired substring. と表示されます。

出力:

The string starts with the desired substring.

PHP で strpos() 関数を使用して文字列が指定された文字列で始まるかどうかを確認する

関数 strpos() は、指定された string 内で最初に出現する部分文字列の位置を返します。これを使用して、string が指定した文字列で始まるかどうかを確認できます。

戻り値が 0 の場合、指定された文字列が指定された部分文字列で始まることを意味します。それ以外の場合、文字列はチェックされた部分文字列で始まりません。

strpos() は大文字と小文字を区別する関数です。この関数を使用するための正しい構文は次のとおりです。

strpos($string, $searchString, $startPosition);

3つのパラメーターがあります。パラメータの詳細は以下の通りです。

パラメータ 説明
$string 必須の 検索したい部分文字列の文字列です。
$searchString 必須の 文字列で検索されるのは部分文字列です。
$startPosition オプション 検索を開始する文字列内の位置です。
<?php
  $string = "Mr. Peter";
  if(strpos( $string, "Mr." ) === 0){
      echo "The string starts with the desired substring.";
  }else 
      echo "The string does not start with the desired substring.";
?>

ここでは、Mr. の最初の出現を見つけることにより、stringMr. で始まるかどうかを確認しました。

出力:

The string starts with the desired substring.

PHP で文字列が指定された文字列で始まるかどうかを確認するために strncmp() 関数を使用する

組み込み関数 strncmp() は、指定された 2つの strings を比較します。この関数も大文字と小文字を区別します。この関数を使用するための正しい構文は次のとおりです。

strncmp($string1, $string2, $length);

3つのパラメーターがあります。パラメータの詳細は以下の通りです。

パラメーター 説明
$string1 必須の 比較される最初の文字列です。
$string2 必須の 比較する 2 番目の文字列です。
$length 必須の 比較する文字列の長さです。

両方の文字列が等しい場合はゼロを返します。これは大文字と小文字を区別する関数です。

<?php
  $string = "Mr. Peter";
  if(strncmp($string, "Mr.", 3) === 0){
      echo "The string starts with the desired substring.";
  }else 
      echo "The string does not start with the desired substring.";
?>

ここでは、2つの文字列が比較されます。比較する文字列の長さは 3 です。

出力:

The string starts with the desired substring.

strncmp の大文字と小文字を区別しないバージョンは strncasecmp です。大文字小文字の区別に関係なく、指定された 2つの文字列の最初の n 文字を比較します。

<?php
  $string = "mr. Peter";
  if(strncasecmp($string, "Mr.", 3) === 0){
      echo "The string starts with the desired substring.";
  }else 
      echo "The string does not start with the desired substring.";
?>

出力:

The string starts with the desired substring.

関連記事 - PHP String