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

PHP 字串處理 10 大經典場景與最佳實踐函式對照表

     編輯:PHP 相關知識

場景對照表

#場景推薦函式/寫法關鍵參數/備註
1取得長度 (字元數)`mb_strlen($str, 'UTF-8')`多位元組字元正確計數,`strlen` 計算位元組數
2截取/摘要`mb_substr($str, 0, 200, 'UTF-8') . '...'`配合 `mb_strimwidth` 寬度截取
3統計單字/字元頻率`str_word_count($str, 1)` / `count_chars($str, 1)`單字計數、字元 ASCII 頻率陣列
4解析 CSV`fgetcsv($fp)` 迴圈正確處理引號、逗號、換行;勿用 `explode`
5陣列轉 CSV 行`implode(',', $fields)` 或 `fputcsv($fp, $fields)``fputcsv` 自動處理逸出
6URL 轉超連結`preg_replace_callback('~https?://\S+~', fn($m)=>"<a href="{$m[0]}">{$m[0]}</a>", $text)`避免簡單正則誤匹配標點、括號
7移除 HTML 標籤`strip_tags($html, '<b><i><u>')`生產環境用 HTML Purifier 白名單
8比較字串 (大小寫敏感)`$a === $b` 或 `strcmp($a, $b) === 0`嚴格比較避免型別轉換陷阱
9換行轉 <br>`nl2br($text)`輸出 HTML 保留換行
10自動換行 (字元寬度)`wordwrap($text, 80, "\n", true)`強制斷長單字、郵件/日誌排版

進階技巧補充

多位元組安全操作 (mbstring)

// 分割中文字串為單字陣列
preg_match_all('/./u', $str, $matches); // u 修飾符支援 UTF-8
$chars = $matches[0];

// 反轉中文字串
$rev = implode('', array_reverse($chars));

效能微優化

  • 單引號字串不解析變數,比雙引號微快 (可忽略)。
  • `echo $a, $b, $c;` (逗號) 比 `$a.$b.$c` (連接) 快,因無需建立中間字串。
  • 大量字串拼接用陣列 `[]` 最後 `implode()`,避免重複記憶體分配。
  • `strtr($str, ['a'=>'b','c'=>'d'])` 批次替換比多次 `str_replace` 快。

常見陷阱

代碼問題修正
`strlen('中文')`回傳 6 (位元組)`mb_strlen('中文', 'UTF-8')` → 2
`substr('中文', 0, 1)`截半個字元 → 亂碼`mb_substr('中文', 0, 1, 'UTF-8')`
`strtolower('İ')`土耳其語 I 判斷錯誤`mb_strtolower('İ', 'UTF-8')`
`json_encode($arr)` 中文變 \uXXXX預設轉義`json_encode($arr, JSON_UNESCAPED_UNICODE)`

總結

字串處理核心原則:**明確指定編碼 (UTF-8)、優先使用 mbstring/內建函式、避免手寫正則解析結構化資料 (CSV/HTML/JSON)**。掌握上表 10 大場景對應函式,可覆蓋 90% 日常開發需求。

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