(PHP 4, PHP 5, PHP 7, PHP 8)
strrpos — 計(jì)算指定字符串在目標(biāo)字符串中最后一次出現(xiàn)的位置
$haystack
, string $needle
, int $offset
= 0): int
返回字符串 haystack
中 needle
最后一次出現(xiàn)的數(shù)字位置。注意 PHP4 中,needle 只能為單個(gè)字符。如果 needle 被指定為一個(gè)字符串,那么將僅使用第一個(gè)字符。
haystack
在此字符串中進(jìn)行查找。
needle
如果 needle
不是一個(gè)字符串,它將被轉(zhuǎn)換為整型并被視為字符的順序值。
offset
或許會(huì)查找字符串中任意長(zhǎng)度的子字符串。負(fù)數(shù)值將導(dǎo)致查找在字符串結(jié)尾處開始的計(jì)數(shù)位置處結(jié)束。
返回 needle 存在的位置。如果沒(méi)有找到,返回 false
。
Also note that string positions start at 0, and not 1.
Returns false
if the needle was not found.
此函數(shù)可能返回布爾值
false
,但也可能返回等同于 false
的非布爾值。請(qǐng)閱讀 布爾類型章節(jié)以獲取更多信息。應(yīng)使用
===
運(yùn)算符來(lái)測(cè)試此函數(shù)的返回值。
版本 | 說(shuō)明 |
---|---|
5.0.0 |
參數(shù) needle 可以是一個(gè)多字符的字符串。
|
5.0.0 |
引入 offset 參數(shù)。
|
示例 #1 檢查字串是否存在
很容易將“在位置 0 處找到”和“未發(fā)現(xiàn)字符串”這兩種情況搞錯(cuò)。這是檢測(cè)區(qū)別的辦法:
<?php
$pos = strrpos($mystring, "b");
if ($pos === false) { // 注意: 三個(gè)等號(hào)
// 未發(fā)現(xiàn)...
}
?>
示例 #2 使用偏移位置進(jìn)行查找
<?php
$foo = "0123456789a123456789b123456789c";
var_dump(strrpos($foo, '7', -5)); // 從尾部第 5 個(gè)位置開始查找
// 結(jié)果: int(17)
var_dump(strrpos($foo, '7', 20)); // 從第 20 個(gè)位置開始查找
// 結(jié)果: int(27)
var_dump(strrpos($foo, '7', 28)); // 結(jié)果: bool(false)
?>