首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP strrchr 函數詳解:查找字元最後出現位置並回傳剩餘字串

     編輯:PHP 相關知識

前言

strrchr() 從字串末尾查找指定字元最後一次出現的位置,並回傳從該位置到字串結尾的子字串(包含該字元)。本文說明語法、參數、回傳值、ASCII 碼搜尋特性、與 strstr 差異及實戰範例。

語法與參數

strrchr(string $haystack, string $needle): string|false
參數說明
haystack必選。被搜尋字串。
needle必選。查找字元。若為整數,視為 ASCII 碼對應字元。

回傳值

  • 找到:回傳從該字元開始到結尾的子字串。
  • 未找到:回傳 false。

實戰範例

基本用法:查找子字串

<?php
echo strrchr('Hello world!', 'world'); // world!
?>

使用 ASCII 碼查找

<?php
// 'o' 的 ASCII 碼為 111
echo strrchr('Hello world!', 111); // orld!
?>

未找到情況

<?php
var_dump(strrchr('Hello', 'x')); // bool(false)
?>

strrchr vs strstr vs strrpos

函數搜尋方向回傳內容大小寫
strrchr反向 (最後)從找到字元到結尾敏感
strstr正向 (第一次)從找到字元到結尾敏感
strrpos反向 (最後)位置索引 (int)敏感
strripos反向 (最後)位置索引 (int)不敏感

常見應用場景

  1. 提取副檔名:substr(strrchr($filename, '.'), 1)(注意無點號情況)。
  2. 解析 URL 路徑最後一段:substr(strrchr($url, '/'), 1)。
  3. 電子郵件域名提取:substr(strrchr($email, '@'), 1)。

多字節注意事項

strrchr 以字節操作,若 needle 為多字節字元(如中文),行為不可預期。請改用 mb_strrchr (PHP 5.2+ 需 mbstring) 或自行實作字元級查找。

結語

strrchr 是「從尾部找字元並取尾部」的便捷函數,配合 ASCII 碼搜尋可處理控制字元。實務上常用於路徑、URL、郵件解析。多字節環境請使用 mb_strrchr 或封裝工具方法統一處理編碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved