PHP String substr_replace() 函數
substr_replace 是 PHP 的內置函數,它可以在字符串中用另一個文本替換字符串的部分。愛掏網 - it200.com
PHP 4+ 版本 支持此函數。愛掏網 - it200.com在原始字符串中的索引作為參數傳遞給此函數,將進行替換。愛掏網 - it200.com也可以將字符串數組作為參數傳遞給此函數,在這種情況下,將在每一輪中為每個字符串進行替換 (參見示例 5)。愛掏網 - it200.com
注意:substr_replace()是一個二進制安全的函數。愛掏網 - it200.com
substr_replace() 的語法如下,它接受四個參數。愛掏網 - it200.com
substr_replace( string,replacement, start,length)
參數
substr_replace()函數由四個參數組成,其中有三個參數是必須傳遞的,而$length參數是可選的。愛掏網 - it200.com以下是對這些參數的詳細討論:
$string (required) – 這是該函數的主要字符串參數,指定要進行替換的輸入字符串。愛掏網 - it200.com這是一個必需參數。愛掏網 - it200.com
$replacement (required) – 這是substr_replace()的必需參數,指定要插入的字符串。愛掏網 - it200.com$replacement包含要進行替換的字符串。愛掏網 - it200.com
$start (required) – 這也是一個必需參數,指定替換需要從哪個位置開始。愛掏網 - it200.com該參數是一個整數值。愛掏網 - it200.com對于該參數有三種情況:
- 如果傳入的$start值為 正數 ,則替換從字符串中指定的位置開始。愛掏網 - it200.com
- 如果$start為 負值 ,則替換從字符串的 末尾 指定的位置開始。愛掏網 - it200.com
- 如果$start為 0 ,則替換將從字符串的第一個字符開始。愛掏網 - it200.com
$length (optional) – 這是該函數的可選參數,指定要在字符串中替換多少個字符。愛掏網 - it200.com如果在substr_replace()中沒有傳入$length參數,則替換會一直進行到字符串的末尾。愛掏網 - it200.com對于該參數也有三種情況:
- 如果$length的值是正數,則給定的長度的字符串將被新字符串替換。愛掏網 - it200.com
- 如果$length的值為負數,則在替換字符串后,字符的數量應該保留在末尾。愛掏網 - it200.com
- 如果$length為0,則插入操作將替換。愛掏網 - it200.com
返回值
substr_replace()在替換完成后返回一個字符串。愛掏網 - it200.com如果字符串是一個數組,則返回一個數組。愛掏網 - it200.com
更新日志
從PHP 4.3.3開始,所有參數都接受數組。愛掏網 - it200.com
示例
這里提供了一些示例,通過這些示例我們可以學習substr_replace()函數的實際應用。愛掏網 - it200.com
示例1
<?php
replace = substr_replace("Hello earth", "javatpoint", 6);
echoreplace;
?>
輸出:
在上面的示例中,替換從第6個位置開始。愛掏網 - it200.com”earth” 被替換為 “javatpoint”。愛掏網 - it200.com
Hello javatpoint
示例2
<?php
//replacement from the front of string
replace1 = substr_replace("Hello javatpoint", "PHP", 6);
echoreplace1;
//replacement from end of the string
replace2 = substr_replace("Hello javatpoint", "PHP", -10);
echoreplace2;
?>
輸出:
在上面的示例中,替換從第一個情況的第6個位置開始。愛掏網 - it200.com在第二個情況中,傳遞了一個負值,所以替換是從字符串的第10個位置在末尾進行的。愛掏網 - it200.com
Hello PHP
Hello PHP
示例3
<?php
replace = substr_replace("PHP!","Hello " , 0, 0);
echoreplace;
?>
輸出:
在上面的示例中,我們使用了第四個 $length 參數,其傳遞的值為0。愛掏網 - it200.com因此,插入了字符串”Hello”而不是替換。愛掏網 - it200.com
Hello PHP!
示例4
<?php
replace = substr_replace("Welcome javatpoint","to " , 8, 0);
echoreplace;
?>
輸出:
Welcome to javatpoint
示例5: 同時替換多個字符串
<?php
input_str = array('X: AAAA', 'Y: AAAA', 'Z: AAAA');
//each AAA is replaced with string BBB.
echo implode('; ', substr_replace(input_str, 'BBBB',3,4)). '</br>';
replace = array('XXXX', 'YYYY', 'ZZZZ');
//each AAA is replaced with different values.
echo implode('; ', substr_replace(input_str, replace,3,4)). '</br>';
//Replacement of different number of character each timelength = array(2,3,4);
echo implode('; ', substr_replace(input_str,replace,3,$length)). '</br>';
?>
輸出:
X: BBBB; Y: BBBB; Z: BBBB
X: XXXX; Y: YYYY; Z: ZZZZ
X: XXXXAA; Y: YYYYA; Z: ZZZZ
注意: 在此處使用implode()函數將數組轉換為字符串。愛掏網 - it200.com