判斷字串是否以特定前綴/後綴開頭/結尾是常見需求。PHP 提供多種方法,本文詳細對比 substr、strpos、strncmp、substr_compare 四種寫法的語法、效能與適用場景。
四種判斷開頭的方法
兩種判斷結尾的方法
效能基準測試 (PHP 8.1, 1000 萬次迴圈)
方法特性對比表
| 方法 | 判斷開頭 | 判斷結尾 | 二進位安全 | 多位元組支援 | 效能 | 推薦度 |
|---|---|---|---|---|---|---|
substr |
✓ | ✓ (負長度) | ✓ | ✗ (需 mb_substr) | 快 | ★★★☆☆ |
strpos |
✓ | ✗ | ✓ | ✗ (需 mb_strpos) | 最快 | ★★★★☆ (僅開頭) |
strncmp |
✓ | ✗ | ✓ | ✗ | 最快 | ★★★★★ (開頭首選) |
substr_compare |
✓ | ✓ (負偏移) | ✓ | ✗ | 快 | ★★★★☆ (通用首選) |
mb_substr |
✓ | ✓ | ✓ | ✓ | 較慢 | ★★★★★ (多語言必須) |
str_starts_with |
✓ | ✗ | ✓ | ✓ | 極快 | ★★★★★ (PHP 8.0+ 開頭首選) |
str_ends_with |
✗ | ✓ | ✓ | ✓ | 極快 | ★★★★★ (PHP 8.0+ 結尾首選) |
多位元組字串 (中文/日文/Emoji) 正確處理
封裝為工具函數
延伸閱讀
更多 PHP 相關內容可參考本站專題:《PHP 字符串用法總結》、《PHP 陣列操作技巧大全》、《PHP 運算與運算符用法總結》、《PHP 網絡編程技巧總結》、《PHP 基本語法入門教程》、《PHP 操作 Office 文檔技巧總結》、《PHP 日期與時間用法總結》、《PHP 面向對象程序設計入門教程》、《PHP+MySQL 數據庫操作入門教程》及《PHP 常見數據庫操作技巧匯總》。