strpbrk

関数の概要

PHPの strpbrk 関数は、指定した文字列の中から、検索対象のいずれかの文字が最初に現れる位置以降の部分文字列を取得するための関数です。文字列操作で特定の複数文字のうちどれか一つが登場する箇所から後ろを取り出したい場合に便利です。

パラメータの説明

  • haystack(文字列): 検索対象となる元の文字列を指定します。
  • char_list(文字列): 探したい文字を1文字ずつ並べた文字列です。このリストの中から最初に現れた文字の位置から先を返します。

戻り値

検索対象の文字列内で、char_list のいずれかの文字が最初に見つかった位置から最後までの部分文字列を返します。もし見つからなければ FALSE を返します。

使用例

基本的な使い方

<?php
$str = "Hello world!";
$result = strpbrk($str, "ow");
var_dump($result);
?>

上記の例では、文字列 “Hello world!” の中から「o」または「w」のいずれか最初に登場する文字を探しています。この場合、最初に「o」が “Hello” の中にあり、そこから最後までの “o world!” が返されます。

複数文字から検索

<?php
$text = "2024年のPHP学習";
$result = strpbrk($text, "PHP");
echo $result;
?>

この例では「P」「H」「P」のいずれかが現れる位置以降の文字列を取得します。結果は「PHP学習」となります。

検索文字が存在しない場合

<?php
$data = "OpenAI GPT";
$result = strpbrk($data, "xyz");
var_dump($result);
?>

「x」「y」「z」が存在しないため、戻り値は FALSE となります。このように存在確認も兼ねることができます。

関連する関数

  • strpos – 指定文字列が現れる最初の位置(数値)を返す
  • strchrstrpbrkのエイリアス) – 部分文字列の取得
  • strstr – 部分文字列を取得(1つの文字列対象)
  • strcspn – 指定した文字以外の連続文字数を取得

まとめ

strpbrk は複数の文字のいずれかが出現する位置から文字列を切り出したい場合に有効なPHP関数です。正確な位置情報よりも「特定条件の文字があれば、その以降を全部取得したい」ときに便利です。実務ではログ解析やテキストデータのカスタム処理などでよく使われますので、ぜひ覚えておきましょう。