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

PHP 字符串高級處理技術大全

     編輯:PHP 相關知識

PHP 字符串核心處理函數速查

1. 轉義與還原

  • addslashes($str):為單引號、雙引號、反斜線、NULL 字符加反斜線,常用於 SQL 語句構建(但推薦使用參數綁定)。
  • stripslashes($str):移除 addslashes 添加的反斜線。
  • addcslashes($str, $charlist):指定字符列表加反斜線,如 addcslashes($str, 'A..z')。
  • stripcslashes($str):還原 addcslashes。

2. 截取與長度

  • substr($str, $start, $length):$start 為正從開頭計,負從結尾計;$length 省略則截取到結尾。
  • mb_substr():多字節編碼(UTF-8)安全截取,需 mbstring 擴展。
  • strlen($str):字節長度;mb_strlen():字符長度。

3. 分割與合併

  • explode($sep, $str, $limit):按字符串分隔符分割為數組。
  • implode($glue, $arr) / join():數組元素用分隔符合併為字符串。
  • preg_split($pattern, $str):正則分割,功能更強。
  • str_split($str, $len):固定長度分割為數組。

4. 替換

  • str_ireplace($search, $replace, $subject, &$count):不區分大小寫替換,返回新字符串,$count 返回替換次數。
  • str_replace():區分大小寫版本。
  • substr_replace($str, $replacement, $start, $length):按位置長度替換子串。
  • preg_replace($pattern, $replacement, $subject):正則替換,支持回調 preg_replace_callback()。

5. 檢索與比較

  • strpos($haystack, $needle, $offset) / stripos():查找首次出現位置(區分/不區分大小寫),返回 false 表示未找到。
  • strrpos() / stripos():查找最後一次出現位置。
  • strstr($haystack, $needle, $before_needle) / stristr():返回從首次出現到結尾的子串。
  • strrchr():返回從最後一次出現到結尾。
  • substr_count($haystack, $needle):統計子串出現次數。
  • strcmp() / strcasecmp() / strnatcmp() / strnatcasecmp():字符串比較(自然排序版)。

6. 去除空白與特殊字符

  • trim($str, $charlist):去除首尾字符(預設空白字符:空格、\t、\n、\r、\0、\x0B)。
  • ltrim() / rtrim():單側去除。

7. HTML 實體轉換

  • htmlentities($str, $flags, $encoding):所有適用字符轉為 HTML 實體。
  • htmlspecialchars($str, $flags, $encoding):僅轉換 & < > " ' 五個特殊字符,性能更好,防 XSS 首選。
  • html_entity_decode() / htmlspecialchars_decode():逆向轉換。

8. 正則表達式 (PCRE)

  • preg_match($pattern, $subject, &$matches):匹配一次,返回 0/1。
  • preg_match_all():全局匹配,返回匹配次數,$matches 為多維數組。
  • preg_grep($pattern, $array):過濾數組元素。
  • preg_replace($pattern, $replacement, $subject, $limit, &$count):替換。
  • preg_split($pattern, $subject, $limit, $flags):分割。

定界符常用 /pattern/flags,常用修飾符:i(忽略大小寫) m(多行) s(單行模式,.匹配換行) u(UTF-8)。

9. 格式化與補全

  • sprintf($format, ...$args) / vsprintf():C 風格格式化,常用 %s %d %f %02d。
  • number_format($num, $decimals, $dec_point, $thousands_sep):數字格式化(千分位、小數位)。
  • str_pad($str, $len, $pad_str, $pad_type):字符串填充對齊。
  • wordwrap($str, $width, $break, $cut):自動換行。

10. 大小寫轉換

  • strtolower() / strtoupper() / ucfirst() / ucwords() / lcfirst():多字節安全版請用 mb_strtolower() 等。

性能提示

  • 簡單字符串操作優先用非正則函數(strpos/str_replace/explode 等),速度遠快於 preg_*。
  • 大量拼接字符串建議用數組收集最後 implode(),避免重複內存分配。
  • 多字節環境(UTF-8)務必使用 mb_* 系列函數,防止截斷亂碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved