strpos( string $haystack, mixed $needle[, int $offset] )
は、検索対象文字列の中から、検索文字列を探し、その検索文字列が最初に見付かった位置を得る組み込み関数。
検索文字列が見付からなかった場合、「FALSE」を返す。
striposと似ているが、strpos
は、大文字小文字を区別する。
定義
整数型 strpos( 文字列型 $haystack, 多様な型 $needle[, 整数型 $offset] );
「文字列型 $haystack」の文字列の中から、「多様な型 $needle」の文字列を探し、その文字列が最初に見付かった位置を得る。
パラメータ
- 文字列型 $haystack
検索対象文字列を指定する。
- 多様な型 $needle
検索したい文字列を指定する。
大文字小文字を区別する。
- 整数型 $offset
オプション。
検索文字列「多様な型 $needle」を探し始める位置。オフセット。
戻り値
「文字列型 $haystack」の検索対象文字列の中から、「多様な型 $needle」の検索文字列を探し、その検索文字列が最初に見付かった位置を返す。
見付からなかった場合は、「FALSE」を返す。
構文
検索対象文字列から検索文字列の位置を得る
見付かった位置 = strpos( 検索対象文字列, 検索文字列 );
「検索対象文字列」から「検索文字列」を探し、その検索文字列が最初に見付かった位置を得る。
検索対象文字列から検索文字列の位置を得る(オフセットを指定)
見付かった位置 = strpos( 検索対象文字列, 検索文字列, オフセット );
「検索対象文字列」の「オフセット」の位置以降から「検索文字列」を探し、その検索文字列が最初に見付かった位置を得る。
サンプル
検索対象文字列に、検索文字列があるかどうかを調べる
結果の比較に、型も含めて比較する等価演算子「===
」を使っている点に注目。
<?php
$varStrA = "abcde";
$varStrB = "c";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "a";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "bc";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "cb";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "j";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
?>
$varStrA = "abcde";
$varStrB = "c";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "a";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "bc";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "cb";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
$varStrB = "j";
$varPos = strpos( $varStrA, $varStrB );
if ( $varPos === false) {
echo "<p>「{$varStrB}」は、含まれない。</p>";
} else {
echo "<p>「{$varStrB}」は、含まれる。</p>";
echo "<p>見付かった位置は、「{$varPos}」。</p>";
}
echo "<br /><br />";
?>
↓↓↓出力結果↓↓↓
「c」は、含まれる。
見付かった位置は、「2」。
「a」は、含まれる。
見付かった位置は、「0」。
「bc」は、含まれる。
見付かった位置は、「1」。
「cb」は、含まれない。
「j」は、含まれない。
見付かった位置は、「2」。
「a」は、含まれる。
見付かった位置は、「0」。
「bc」は、含まれる。
見付かった位置は、「1」。
「cb」は、含まれない。
「j」は、含まれない。
検索文字列の位置を得る
<?php
$var = "abcde";
echo strpos( $var, "c" ) . "<br />";
$var = "abcde abcde";
echo strpos( $var, "c", 5 ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "e" ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "E" ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "easy" ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "is" ) . "<br />";
?>
$var = "abcde";
echo strpos( $var, "c" ) . "<br />";
$var = "abcde abcde";
echo strpos( $var, "c", 5 ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "e" ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "E" ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "easy" ) . "<br />";
$var = "English is easy.";
echo strpos( $var, "is" ) . "<br />";
?>
↓↓↓出力結果↓↓↓
2
8
11
0
11
4
8
11
0
11
4