(PHP 4, PHP 5)
strrpos — 文字列中に、ある部分文字列が最後に現れる場所を探す
$haystack
, string $needle
[, int $offset
= 0
] )
文字列 haystack
の中で、
needle
が最後に現れる位置を探します。
haystack
検索を行う文字列。
needle
needle
が文字列でない場合は、
それを整数に変換し、その番号に対応する文字として扱います。
offset
指定すると、文字列の開始位置からこの文字数だけ進んだところで検索を中止します。 負の値を指定すると、文字列の最後からこの文字数だけ戻ったところから逆向きに検索を開始します。
needle が見つかった位置を、
haystack
文字列の先頭 (offset の値とは無関係) からの相対位置で返します。
文字列の開始位置は 0 であり、1 ではないことに注意しましょう。
needle が見つからない場合は FALSE
を返します。
バージョン | 説明 |
---|---|
5.0.0 |
needle
は 1 文字以上の文字列を指定可能です。
|
5.0.0 |
offset パラメータが追加されました。
|
例1 needle が haystack の中にあるかどうかの確認
"位置 0 に文字が見つかった" と "文字が見つからなかった" 場合の返り値は混同しやすいです。この違いを見分ける方法を以下に示します。
<?php
$pos = strrpos($mystring, "b");
if ($pos === false) { // 注意: 等号が 3 つ並んでいます
// 見つからない...
}
?>
例2 オフセットつきの検索
<?php
$foo = "0123456789a123456789b123456789c";
var_dump(strrpos($foo, '7', -5)); // 末尾から 5 文字戻ったところから検索を始めます
// 結果: int(17)
var_dump(strrpos($foo, '7', 20)); // 文字列の 20 文字目から検索を始めます
// 結果: int(27)
var_dump(strrpos($foo, '7', 28)); // 結果: bool(false)
?>