函數對比速查
| 函數 | 大小寫敏感度 | 用途 |
strrpos() | 敏感 | 查找字串最後一次出現位置 |
strripos() | 不敏感 | 查找字串最後一次出現位置(忽略大小寫) |
語法定義
strrpos(string $haystack, string $needle, int $offset = 0): int|false
strripos(string $haystack, string $needle, int $offset = 0): int|false
$haystack:被搜尋的字串
$needle:要查找的字串(PHP 8.0+ 接受非字串自動轉換)
$offset:開始搜尋的位置(負數表示從末尾倒數)
- 回傳:找到則回傳位置(0 起始),否則回傳
false
實戰範例
範例 1:strripos() — 不分大小寫
在 "Hello world!" 中,"WO"(忽略大小寫)匹配 "wo",位置為 6。
範例 2:strrpos() — 分大小寫
範例 3:使用 offset 參數
實務應用:驗證 HTTP 協議連結
常見錯誤與最佳實踐
❌ 錯誤:用 != false 判斷
✅ 正確:用 !== false 或 === false
相關函數快速查閱
| 函數 | 說明 |
strpos() | 找第一次出現位置(大小寫敏感) |
stripos() | 找第一次出現位置(不敏感) |
strrpos() | 找最後一次出現位置(敏感) |
strripos() | 找最後一次出現位置(不敏感) |
strstr() | 返回從第一次出現到結尾的子串 |
stristr() | 同上,不敏感 |
效能建議
- 單純檢查開頭/結尾:優先用
str_starts_with()/str_ends_with()(PHP 8.0+),語意明確且最快
- 大字串搜尋:
strrpos 從後向前掃描,若目標靠近末尾效能優於 strpos
- 避免在迴圈中重複搜尋同一字串,預先計算位置