字符串處理是 PHP 開發中最高頻操作。本文精選 30+ 個核心字符串函數,按功能分類並附最小可運行示例,作為開發時的桌邊速查手冊。
ucfirst($str) // 首字母大寫
ucwords($str) // 每個單詞首字母大寫
lcfirst($str) // 首字母小寫 (PHP 5.3+)
strtolower/strtoupper // 全小寫/大寫
trim($str, $charlist) // 兩端修剪
ltrim/rtrim // 單側修剪
// $charlist 支援範圍寫法:"0..9", "A..Z", ".\n\r\t"
htmlspecialchars($str) // & < > " ' → 實體(防 XSS 必用)
htmlspecialchars_decode() // 反向
htmlentities($str) // 所有可轉字符 → 實體
html_entity_decode() // 反向
nl2br($str) // \n → <br/>(輸出 HTML 時常用)
addcslashes($str, 'A..z') // 指定範圍字符前加反斜線
addslashes/stripslashes // ' " \ NUL 轉義(已棄用,資料庫用預處理)
quotemeta() // 正則元字符轉義
md5($str) / md5_file($file) // 32 位十六進制
sha1($str) / sha1_file($file) // 40 位
hash('algo', $str) // 統一介面,支援 sha256, ripemd160 等
convert_uuencode/uudecode() // uuencode 編碼(郵件傳輸遺留)
base64_encode/decode() // Base64(現代通用)
strpos/strrpos // 區分大小寫查找位置
stripos/strripos // 不區分大小寫
strstr/stristr // 從首次出現處截取到結尾
substr_count($haystack, $needle) // 子串出現次數
substr_replace() // 替換指定位置長度
str_replace($search, $replace, $subject) // 全量替換(支援陣列)
strtr($str, $from, $to) // 字符級映射替換(效率更高)
preg_match($pattern, $subject, &$matches) // 首次匹配
preg_match_all($pattern, $subject, &$matches) // 全局匹配
preg_replace($pattern, $replacement, $subject) // 替換
preg_split($pattern, $subject) // 分割
preg_quote($str) // 轉義正則元字符
explode($delimiter, $str, $limit) // 分割為陣列
implode($glue, $pieces) // 陣列合併為字符串
str_split($str, $len) // 固定長度分割
chunk_split($str, $len, $end) // 分塊並插入結尾符(如 Base64 郵件格式)
strcmp/strcasecmp // 二進制安全比較
strnatcmp/strnatcasecmp // 自然排序比較(人類直覺)
similar_text($a, $b, &$percent) // 相似度百分比
levenshtein($a, $b) // 編輯距離
printf/sprintf/vprintf/vsprintf // 格式化輸出/返回
parse_str($str, &$arr) // query string → 陣列
sscanf($str, $format, &$vars...) // 格式化掃描解析
str_shuffle($str) // 隨機打亂
str_word_count($str) // 統計單詞數
strlen/mb_strlen // 字節長度 / 字符長度
substr/mb_substr // 截取
strrev($str) // 反轉
chr/ord // ASCII 碼互轉
metaphone/soundex // 英文發音編碼(模糊搜尋用)
strtr 比 str_replace 快 3-5 倍strpos 系列,避免 PCRE 開銷fread + 逐塊處理)收藏本表,告別「這個函數怎麼用」的反覆查閱,專注業務邏輯實現。