PHP 字符串【替換】和【重復(fù)替換】方法總結(jié)

一. substr_replace() :把字符串的一部分替換為另一個(gè)字符串。

  • 首先先來(lái)個(gè)基礎(chǔ)的
語(yǔ)法:substr_replace(string,replacement,start,length);
返回值:返回被替換的字符串。如果 *string* 是數(shù)組,則返回?cái)?shù)組。
版本:4+
實(shí)例一:echo substr_replace("Hello","world",0);   // world

為什么會(huì)輸出world呢,在弄懂之前我們先看一波參數(shù)吧

參數(shù) 描述
string <h3> 必需</h3>規(guī)定要檢查的字符串。
replacement <h3> 必需</h3>規(guī)定要插入的字符串。
start <h3> 必需</h3>規(guī)定在字符串的何處開(kāi)始替換。
正數(shù) - 在字符串中的指定位置開(kāi)始替換。
負(fù)數(shù) - 在從字符串結(jié)尾的指定位置開(kāi)始替換。
0 - 在字符串中的第一個(gè)字符處開(kāi)始替換
length <h4>可選</h4>規(guī)定要替換多少個(gè)字符。默認(rèn)是與字符串長(zhǎng)度相同。
正數(shù) - 被替換的字符串長(zhǎng)度。
負(fù)數(shù) - 表示待替換的子字符串結(jié)尾處距離 string 末端的字符個(gè)數(shù)。
0 - 插入而非替換

看過(guò)參數(shù)顯然很容易了,按照描述上的意思就是。
步驟1->

  • 確定檢查的字符串"Hello"。
  • 要插入的字符串"world".
  • 以及確認(rèn)第三個(gè)參數(shù)為——在字符串中的第一個(gè)字符處開(kāi)始替換。
  • 第四個(gè)參數(shù)為可選,沒(méi)有值則不處理

步驟2-> 只需按照字面意思從字符串第一個(gè)字符'H'開(kāi)始用插入字符串'world'根據(jù)start參數(shù)0替換整個(gè)字符串。

如果還沒(méi)有理解最基礎(chǔ)的我們來(lái)看更多實(shí)例

$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";

/*這兩個(gè)例子全部都是用插入字符串'bob' 來(lái)替換整個(gè)字符串*/
echo substr_replace($var, 'bob', 0) . "<br />\n";                 // bob
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";;  // bob 

/* 因?yàn)閘ength參數(shù)為0所以為插入而非替換,在第一個(gè)字符開(kāi)始插入字符串'bob'. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";               // bobABCDEFGH:/MNRPQR/

/* 這兩個(gè)例子都是用插入字符串'bob‘來(lái)替換某個(gè)位置的字符串. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";             // ABCDEFGH:/bob/  
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";             // ABCDEFGH:/bob/

/* 用空字符串替換 從第十位開(kāi)始的字符串(從M開(kāi)始). */
echo substr_replace($var, '', 10, -1) . "<br />\n";                // ABCDEFGH://
-------------------------------------------------------------------------------------------------------------------------
$input = array('A: XXX', 'B: XXX', 'C: XXX');

//用YYY替換數(shù)組中每個(gè)從下標(biāo)為3的元素的字符串
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";     // A: YYY;B: YYY;C:YYY

// 用數(shù)組中每個(gè)下標(biāo)的元素替換$input數(shù)組每個(gè)元素中下標(biāo)從3開(kāi)始的字符串.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";  // A: AAA; B: BBB; C: CCC

// 用$replace數(shù)組中的字符串替換$input數(shù)組每個(gè)元素中下標(biāo)從3開(kāi)始 依次根據(jù)$length長(zhǎng)度替換。
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";  // A: AAAXX; B: BBBX; C: CCC

二. str_repeat() :把字符串重復(fù)指定的次數(shù)

  • 還是先看語(yǔ)法
str_repeat(*strizng*,*repeat*)
返回值:返回被重復(fù)的字符串
版本:4+
參數(shù) 描述
string 必需。規(guī)定要重復(fù)的字符串。
repeat 必需。規(guī)定字符串將被重復(fù)的次數(shù)。必須大于等于 0。
  • 再來(lái)看一個(gè)例子
$password = "12345abcdef";
$visibleLength = 4; // 4 chars from the beginning
echo substr($password,0,4).str_repeat("*", (strlen($password)-$visibleLength));

這段代碼的意義非常簡(jiǎn)單,首先利用substr函數(shù)找出字符串從0下標(biāo)開(kāi)始長(zhǎng)度為4的字符串,然后利用找出的'1234'字符串拼接重復(fù)的'*';

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容