PHP マニュアル
前のページ |  | 次のページ

# strpos

(PHP 3, PHP 4, PHP 5)

strpos -- 文字列が最初に現れる場所を見つける

## 説明

int strpos ( string haystack, string needle [, int offset] )

文字列 `haystack` の中で、 `needle` が最初に現れた位置を数字で返します。 PHP 5 以前の strrpos() とは異なり、この関数は `needle` パラメータとして文字列全体をとり、 その文字列全体が検索対象となります。

`needle` が見つからない場合、 strpos() は boolean `FALSE` を返します。

警告
この関数は論理値 `FALSE` を返す可能性がありますが、`FALSE` として評価される `0` や "" といった値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

> 注意: この関数はバイナリデータに対応しています。

例 1. strpos() の例

`<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// === を使用していることに注目しましょう。単純に == を使ったのでは
// 期待通りに動作しません。なぜなら 'a' が 0 番目 (最初) の文字だからです。
if ($pos === false) {
echo "文字列 '$findme' は、文字列 '$mystring' の中で見つかりませんでした";
} else {
echo "文字列 '$findme' が文字列 '$mystring' の中で見つかりました";
echo " 見つかった位置は $pos です";
}
// オフセット以前の内容を無視して文字を探すこともできます。
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos は 0 ではなく 7 となります。
?>`

`needle` が文字列でない場合、 整数に変換され、文字が並んだ値として適用されます。

オプションのパラメータ `offset` により、 検索を開始する `haystack` の文字を指定することができます。 この場合でも、返される位置は `haystack` の先頭からの相対位置となります。

strrpos(), stripos(), strripos(), strrchr(), substr(), stristr(), strstr() も参照ください。

前のページ | ホーム | 次のページ
strpbrk | 上に戻る | strrchr