php怎麼替換字串中的所有字元

2022-10-14 22:03:52

3種替換方法:1、用substr_replace()從字串頭部開始替換全部字元,語法「substr_replace(原字串,指定替換值,0)」。2、用str_replace()替換全部字元,語法「str_replace(原字串,指定替換值,原字串)」。3、用str_ireplace()替換全部字元,語法「str_ireplace(原字串, 指定替換值, 原字串)」。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

方法1:利用substr_replace()函數

substr_replace() 函數把字串的一部分替換為另一個字串。

substr_replace(string,replacement,start,length)
登入後複製
  • substr_replace() 在字串 string 的副本中將由 start 和可選的 length 引數限定的子字串使用 replacement 進行替換。

  • 如果 start 為正數,替換將從 string 的 start 位置開始。如果 start 為負數,替換將從 string 的倒數第 start 個位置開始。

  • 如果設定了 length 引數並且為正數,就表示 string 中被替換的子字串的長度。如果設定為負數,就表示待替換的子字串結尾處距離 string 末端的字元個數。如果沒有提供此引數,那麼預設為 strlen(string)(字串的長度)。當然,如果 length 為 0,那麼這個函數的功能為將 replacement 插入 string 的 start 位置處。

引數描述
string必需。規定要檢查的字串。
replacement必需。規定要插入的字串。
start必需。規定在字串的何處開始替換。
  • 正數 - 在字串的指定位置開始
  • 負數 - 在從字串結尾的指定位置開始
  • 0 - 在字串中的第一個字元處開始
length可選。規定要替換多少個字元。預設是與字串長度相同。
  • 正數 - 被替換的字串長度
  • 負數 - 從字串末端開始的被替換字元數
  • 0 - 插入而非替換

範例:替換字串中的所有字元

只需要將該函數的第三個引數設定為0,第三個引數設定為原字串長度或省略即可替換全部字元

<?php
header('content-type:text/html;charset=utf-8');   
$str = 'hello world!';
echo "原字串:".$str."<br><br>";
$replace = 'ABCDEFGHIJKL';
echo "替換全部字元字元:".substr_replace($str, $replace,0)."<br>";
?>
登入後複製

1.png

方法2/方法3:str_ireplace() 和 str_replace() 函數

str_ireplace() 和 str_replace 都使用新的字串替換原來字串中指定的子字串,如果需要替換的子串就是原字串,則可替換原字串中的所有字元。

str_ireplace() 和 str_replace的語法是相似的,區別在於str_replace 區分大小寫,str_ireplace() 不區分大小寫

str_replace(find,replace,string,count)
str_ireplace(find,replace,string,count)
登入後複製
引數描述
find必需。規定要查詢的值。
replace必需。規定替換 find 中的值的值。
string必需。規定被搜尋的字串。
count可選。對替換數進行計數的變數。

範例:替換字串中的所有字元

只需要將第一個引數設定為原字串值即可。

<?php
header('content-type:text/html;charset=utf-8');   
$str = 'hello world!';
echo "原字串:".$str."<br><br>";
$replace = 'ABCDEFGHIJKL';
echo "替換全部字元字元:".str_replace($str, $replace, $str)."<br>";
echo "替換全部字元字元:".str_ireplace($str, $replace, $str)."<br>";
?>
登入後複製

2.png

擴充套件知識:替換字串還可利用正則替換函數preg_replace() 和preg_filter()

preg_replace() 和preg_filter()函數都可以執行正規表示式的搜尋和替換,不同的是 preg_filter() 函數只返回匹配成功的結果,而 preg_replace() 返回所有結果,不管是否匹配成功。

preg_replace() 和preg_filter()函數的語法類似:

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
preg_filter($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
登入後複製

搜尋 $subject 中匹配 $pattern 的部分, 以 $replacement 進行替換。

引數說明如下:

  • $pattern:要搜尋的模式,可以使一個字串或字串陣列;

  • $replacement:用於替換的字串或字串陣列。如果這個引數是一個字串,並且 $pattern 是一個陣列,那麼所有的模式都使用這個字串進行替換。如果 $pattern 和 $replacement 都是陣列,每個 $pattern 使用 $replacement 中對應的元素進行替換。如果 $replacement 中的元素比 $pattern 中的少,多出來的 $pattern 使用空字串進行替換。

  • $subject:要進行搜尋和替換的字串或字串陣列,如果 $subject 是一個陣列,搜尋和替換回在 $subject 的每一個元素上進行, 並且返回值也會是一個陣列。

  • $limit:可選引數,每個模式在每個 $subject 上進行替換的最大次數。預設是 -1(無限)。

  • $count:可選引數,如果指定,將會被填充為完成的替換次數。

範例:

preg_filter()和preg_replace()利用正則來替換字串

<?php
header('content-type:text/html;charset=utf-8');
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); 
$pattern = array('/\d/', '/[a-z]/', '/[1a]/'); 
$replace = array('A:$0', 'B:$0', 'C:$0'); 
 
echo "preg_filter 返回值:\n";
var_dump(preg_filter($pattern, $replace, $subject)); 
 
echo "preg_replace 返回值:\n";
var_dump(preg_replace($pattern, $replace, $subject)); 
?>
登入後複製

3.png

推薦學習:《》

以上就是php怎麼替換字串中的所有字元的詳細內容,更多請關注TW511.COM其它相關文章!