substr_replace 是 PHP 的內置函數,它將字符串的一部分替換為字符串中的另一個文本。 PHP 4+ 版本支持此函數。原始字符串中的索引作為要執行替換的參數傳遞。字符串數組也可以作為參數傳遞給該函數,在這種情況下,每輪都會對每個字符串進行替換(參見示例 5)。
注意:substr_replace() 是一個二進製安全函數。
用法
substr_replace() 的語法如下所示,它接受四個參數。
substr_replace( $string, $replacement, $start, $length)
參數
substr_replace() 由四個參數組成,其中三個參數是必須傳入該函數的參數,而 $length 參數是可選的。下麵將詳細討論所有這些參數:
$string (required) - 它是這個函數的主要字符串參數,它指定將在其中完成替換的輸入字符串。這是一個強製性參數。
$replacement (required) - 它是 substr_replace() 的強製參數,它指定要插入的字符串。 $replacement 包含要進行替換的字符串。
$start (required) - 它也是一個強製參數,它指定需要從哪裏開始替換的位置。此參數保存整數值。這個參數有三個條件:
- 如果 $start 中傳遞的值為正數,則替換從字符串中的指定位置開始。
- 如果 $start 具有負值,則替換從字符串末尾的指定位置開始。
- 如果 $start 為 0,則替換將從字符串的第一個字符開始。
$length (optional) - 它是這個函數的一個可選參數,它指定要在字符串中替換多少個字符。如果 $length 參數未在 substr_replace() 中傳遞,則替換在字符串的末尾停止。這個參數還有三個條件:
- 如果 $length 值為正,則字符串的給定長度將替換為新字符串。
- 如果 $length 為負數,則替換字符串後應將字符數保留在末尾。
- 如果 $length 為 0,則完成插入而不是替換。
返回值
substr_raplace() 在替換完成後返回一個字符串。如果字符串是一個數組,則它返回一個數組。
變更日誌
從 PHP 4.3.3 開始,所有參數都接受數組。
例子
給出了一些例子,我們可以通過這些例子了解 substr_replace() 函數的實際實現。
例子1
<?php
$replace = substr_replace("Hello earth", "javatpoint", 6);
echo $replace;
?>
輸出:
在上麵的例子中,替換是從第 6 個位置開始的。 "earth" 替換為 "javatpoint"。
Hello javatpoint
例子2
<?php
//replacement from the front of string
$replace1 = substr_replace("Hello javatpoint", "PHP", 6);
echo $replace1;
//replacement from end of the string
$replace2 = substr_replace("Hello javatpoint", "PHP", -10);
echo $replace2;
?>
輸出:
在上麵的例子中,在第一種情況下,替換是從第 6 個位置開始的。在第二種情況下,傳遞了一個負值,因此在字符串的第 10 個位置的末尾進行替換。
Hello PHP Hello PHP
例子3
<?php
$replace = substr_replace("PHP!","Hello " , 0, 0);
echo $replace;
?>
輸出:
在上麵的例子中,我們使用了第四個 $length 參數,其值被傳遞為 0。因此字符串 "Hello" 的插入完成而不是替換。
Hello PHP!
示例 4
<?php
$replace = substr_replace("Welcome javatpoint","to " , 8, 0);
echo $replace;
?>
輸出:
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 time
$length = 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() 函數在這裏用於數組到字符串的轉換。
相關用法
- PHP String substr_count()用法及代碼示例
- PHP String substr_compare()用法及代碼示例
- PHP String substr()用法及代碼示例
- PHP String sprintf()用法及代碼示例
- PHP String strtr()用法及代碼示例
- PHP String strtolower()用法及代碼示例
- PHP String strspn()用法及代碼示例
- PHP String strtoupper()用法及代碼示例
- PHP String strtok()用法及代碼示例
- PHP String strstr()用法及代碼示例
- PHP String str_replace()用法及代碼示例
- PHP String sscanf()用法及代碼示例
- PHP String strrpos()用法及代碼示例
- PHP String wordwrap()用法及代碼示例
- PHP String ucwords()用法及代碼示例
- PHP String localeconv()用法及代碼示例
- PHP String quoted_printable_encode()用法及代碼示例
- PHP String ucfirst()用法及代碼示例
- PHP String nl2br()用法及代碼示例
- PHP String vsprintf()用法及代碼示例
注:本文由純淨天空篩選整理自 PHP String substr_replace() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。