String 関数
PHP Manual

strrpos

(PHP 4, PHP 5)

strrpos文字列中に、ある部分文字列が最後に現れる場所を探す

説明

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

文字列 haystack の中で、 needle が最後に現れた位置を数字で返します。

パラメータ

haystack

検索を行う文字列。

needle

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。 PHP 4 では、needle には一文字だけしか指定できませんでした。

offset

文字列中の任意の文字位置から検索を開始することができます。 負の値を指定すると、文字の終端より前の任意の位置で検索を終了します。

返り値

needle が存在する位置を返します。 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)
?>

参考


String 関数
PHP Manual