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

PHP str_replace() 與 str_ireplace() 差異深度解析與陣列替換進階技巧

     編輯:PHP 相關知識

核心差異

函式大小寫敏感度適用場景
str_replace敏感精確替換,效能稍佳
str_ireplace不敏感關鍵字過濾、使用者輸入正規化

基本用法

// str_replace:區分大小寫
echo str_replace("seo", "hupeng", "seo studying SEO"); // hupeng studying SEO

// str_ireplace:不區分大小寫
echo str_ireplace("seo", "hupeng", "www.bkjia.com SEO"); // www.bkjia.com hupeng

陣列參數進階行為

str_replace($search, $replace, $subject) 三個參數皆支援陣列,行為如下:

參數組合行為說明範例結果
search 為陣列,replace 為字串將 search 每個值替換為 replacestr_replace(['m','i'], 'n', "my name is jim!") → ny nane ns jnn!
search 為字串,replace 為陣列將 search 替換為 "Array" 字串(非預期)str_replace('m', ['n','z'], "my name") → Arrayn aArraye
subject 為陣列對每個元素分別替換,回傳陣列str_replace('m', 'n', ["my", "game"]) → ["ny", "gane"]
search、replace 皆為陣列一一對應替換,search 多餘元素以空字串替換,replace 多餘被忽略str_replace(['m','i'], ['n','z'], "my name is jim!") → ny nane zs jzn!
三參數皆為陣列對 subject 每元素套用對應替換規則回傳處理後的陣列

計數參數(PHP 5.0+)

$str = "good golly miss molly!";
$newStr = str_replace("ll", "", $str, $count);
echo $count; // 2

中文編碼陷阱:雙位元組字元導致錯位替換

$str = "汀。"; // 假設 Big5 編碼:汀=0xCD 0xA1,。=0xA1 0xA3
echo str_replace(" ", "", $str); // 全形空格 0xA1 0xA1
// 輸出 "停" (0xCD 0xA3) —— 因為逐位元組比對導致誤判

解決方案:使用 mb_str_replace(需 mbstring 擴充)或改用 UTF-8 編碼統一處理。

實用範例集

// 移除所有母音字母
$vowels = ['a','e','i','o','u','A','E','I','O','U'];
$onlyConsonants = str_replace($vowels, "", "Hello World of PHP"); // Hll Wrld f PHP

// 詞彙替換:健康飲食 → 夜宵清單
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = ["fruits", "vegetables", "fiber"];
$yummy   = ["pizza", "beer", "ice cream"];
$newPhrase = str_replace($healthy, $yummy, $phrase);
// You should eat pizza, beer, and ice cream every day.
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved