strrchr() 從字串末尾查找指定字元最後一次出現的位置,並回傳從該位置到字串結尾的子字串(包含該字元)。本文說明語法、參數、回傳值、ASCII 碼搜尋特性、與 strstr 差異及實戰範例。
strrchr(string $haystack, string $needle): string|false
| 參數 | 說明 |
|---|---|
haystack | 必選。被搜尋字串。 |
needle | 必選。查找字元。若為整數,視為 ASCII 碼對應字元。 |
false。<?php
echo strrchr('Hello world!', 'world'); // world!
?>
<?php
// 'o' 的 ASCII 碼為 111
echo strrchr('Hello world!', 111); // orld!
?>
<?php
var_dump(strrchr('Hello', 'x')); // bool(false)
?>
| 函數 | 搜尋方向 | 回傳內容 | 大小寫 |
|---|---|---|---|
| strrchr | 反向 (最後) | 從找到字元到結尾 | 敏感 |
| strstr | 正向 (第一次) | 從找到字元到結尾 | 敏感 |
| strrpos | 反向 (最後) | 位置索引 (int) | 敏感 |
| strripos | 反向 (最後) | 位置索引 (int) | 不敏感 |
substr(strrchr($filename, '.'), 1)(注意無點號情況)。substr(strrchr($url, '/'), 1)。substr(strrchr($email, '@'), 1)。strrchr 以字節操作,若 needle 為多字節字元(如中文),行為不可預期。請改用 mb_strrchr (PHP 5.2+ 需 mbstring) 或自行實作字元級查找。
strrchr 是「從尾部找字元並取尾部」的便捷函數,配合 ASCII 碼搜尋可處理控制字元。實務上常用於路徑、URL、郵件解析。多字節環境請使用 mb_strrchr 或封裝工具方法統一處理編碼。