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

PHP 字串分割:explode() 與 split() 差異比較

     編輯:PHP 綜合知識

PHP 提供兩種分割字串函數:explode()(固定分隔字串)與 split()(正則分隔)。注意:split() 自 PHP 5.3 棄用,PHP 7.0 移除,新代碼請改用 preg_split()。

explode():高效固定分隔

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
  • 效能最佳,無正則引擎開銷
  • 分隔字串不支援正則

preg_split():現代正則分割(取代 split())

preg_split(string $pattern, string $subject, int $limit = -1, int $flags = 0): array
  • 支援完整 PCRE 正則
  • 可用旗標 PREG_SPLIT_NO_EMPTY 移除空元素

對照範例

<?php
$str = "php_strting_function.html";

$ex = explode("_", $str);
print_r($ex);
// Array([0]=>php [1]=>strting [2]=>function.html)

$pr = preg_split("/[_.]/", $str);
print_r($pr);
// Array([0]=>php [1]=>strting [2]=>function [3]=>html)
?>

效能與選擇建議

場景推薦函數理由
固定字元分隔(CSV、路徑、底線)explode()極快、記憶體少
多種分隔字元、複雜規則preg_split()正則彈性
分割後需保留分隔符preg_split(..., PREG_SPLIT_DELIM_CAPTURE)正則捕獲組
固定寬度切割str_split() / mb_str_split()按長度切割

常見旗標

  • PREG_SPLIT_NO_EMPTY:略過空結果
  • PREG_SPLIT_OFFSET_CAPTURE:回傳位移資訊

棄用 split(),善用 explode() 與 preg_split() 兼顧效能與彈性。

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