在 PHP 開發中,字符串操作是最基礎也最頻繁的任務。從簡單的長度計算、大小寫轉換,到複雜的加密、編碼、正則匹配,PHP 內置了豐富的字符串函數庫。本文系統梳理了 51 個核心字符串處理函數,按功能分類並附帶說明,幫助開發者快速查閱與選型。
一、字符串長度與編碼轉換
- strlen:獲取字符串長度(按字節)。
- chr / ord:ASCII 碼與字符互轉。
- bin2hex / hex2bin:二進制與十六進制互轉。
- convert_cyr_string:西里爾字符集轉換(已棄用,建議用
mb_convert_encoding)。
二、字符串查找與比較
- strpos / strrpos:查找字符首次/最後出現位置(區分大小寫)。
- stripos / strripos:不區分大小寫版本。
- strstr / strchr:從首次出現處截取到結尾。
- strrchr:從最後一次出現處截取到結尾。
- strcmp / strcasecmp:二進制安全比較(區分/不區分大小寫)。
- strnatcmp / strnatcasecmp:自然排序算法比較。
- similar_text:計算相似度百分比。
- soundex / metaphone:按發音編碼,用於模糊匹配。
三、字符串截取與分割
- substr:按位置/長度截取(支援負數)。
- str_split:按固定長度分割為數組。
- explode / strtok:按分隔符分割(
explode 返回數組,strtok 迭代式)。
- chunk_split:將字符串分成小塊(如 Base64 編碼換行)。
- parse_str:將查詢字符串解析為變量。
四、字符串替換與清理
- str_replace / str_ireplace:批量替換(不區分大小寫)。
- strtr:單字符或子串映射替換,速度更快。
- substr_replace:指定範圍替換。
- trim / ltrim / rtrim / chop:去除首尾空白字符(
chop 為 rtrim 別名)。
- strip_tags:剝離 HTML/PHP 標籤。
- addslashes / stripslashes:反斜線轉義與還原(資料庫入庫常用)。
- quotemeta:為正則元字符加反斜線。
五、大小寫與格式化
- strtolower / strtoupper:全局大小寫轉換。
- ucfirst / ucwords:首字母/每個單詞首字母大寫。
- printf / sprintf / vprintf / vsprintf:格式化輸出/返回。
- number_format:千分位格式化數字。
- nl2br:換行符轉
<br>。
- wordwrap:按寬度換行。
- strrev:字符串反轉。
六、HTML 與 URL 編碼
- htmlspecialchars:特殊字符轉實體(防 XSS 必用)。
- htmlentities:所有字符轉實體。
- htmlspecialchars_decode / html_entity_decode:反向解碼。
- urlencode / rawurlencode:URL 編碼(空格為
+ / %20)。
- urldecode / rawurldecode:URL 解碼。
七、加密與哈希
- md5 / sha1:單向哈希(不建議用於密碼)。
- crypt / password_hash / password_verify:現代密碼加密 API(PHP 5.5+)。
八、輸出與緩衝控制
- echo / print:直接輸出(
print 返回 1)。
- flush / ob_flush / ob_start 系列:輸出緩衝管理。
九、數組與字符串互轉
- implode / join:數組按分隔符合併為字符串。
- explode:字符串分割為數組(見上)。
十、其他實用函數
- get_meta_tags:解析文件
<meta> 標籤。
- setlocale:設置地區化信息(影響
strftime 等)。
- quoted_printable_decode:MIME quoted-printable 解碼。
選型建議與最佳實踐
- 多字節字符串:處理中文等非 ASCII 字符請優先使用
mb_* 系列(mb_strlen、mb_substr、mb_strpos 等)。
- 性能敏感場景:
strtr 單字符替換比 str_replace 快;strpos 判斷存在性優於 preg_match。
- 安全第一:輸出到 HTML 必須
htmlspecialchars;SQL 參數化查詢優於 addslashes;密碼請用 password_hash。
- 編碼一致性:全項目統一 UTF-8,入庫、輸出、頁面
<meta charset="utf-8"> 三方一致。
掌握這 51 個函數的核心差異與適用場景,能顯著提升 PHP 字符串處理的效率與代碼質量。建議收藏備查,實戰中結合 mbstring 擴展與現代安全 API 靈活組合。