strrpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strrpos計算指定字符串在目標字符串中最后一次出現(xiàn)的位置

說明

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

返回字符串 haystackneedle 最后一次出現(xiàn)的數(shù)字位置。注意 PHP4 中,needle 只能為單個字符。如果 needle 被指定為一個字符串,那么將僅使用第一個字符。

參數(shù)

haystack

在此字符串中進行查找。

needle

如果 needle不是一個字符串,它將被轉換為整型并被視為字符的順序值。

offset

或許會查找字符串中任意長度的子字符串。負數(shù)值將導致查找在字符串結尾處開始的計數(shù)位置處結束。

返回值

返回 needle 存在的位置。如果沒有找到,返回 false。 Also note that string positions start at 0, and not 1.

Returns false if the needle was not found.

警告

此函數(shù)可能返回布爾值 false,但也可能返回等同于 false 的非布爾值。請閱讀 布爾類型章節(jié)以獲取更多信息。應使用 === 運算符來測試此函數(shù)的返回值。

更新日志

版本 說明
5.0.0 參數(shù) needle 可以是一個多字符的字符串。
5.0.0 引入 offset 參數(shù)。

范例

示例 #1 檢查字串是否存在

很容易將“在位置 0 處找到”和“未發(fā)現(xiàn)字符串”這兩種情況搞錯。這是檢測區(qū)別的辦法:

<?php

$pos 
strrpos($mystring"b");
if (
$pos === false) { // 注意: 三個等號
    // 未發(fā)現(xiàn)...
}

?>

示例 #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)
?>

參見

  • strpos() - 查找字符串首次出現(xiàn)的位置
  • stripos() - 查找字符串首次出現(xiàn)的位置(不區(qū)分大小寫)
  • strripos() - 計算指定字符串在目標字符串中最后一次出現(xiàn)的位置(不區(qū)分大小寫)
  • strrchr() - 查找指定字符在字符串中的最后一次出現(xiàn)
  • substr() - 返回字符串的子串