當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP String substr_replace()用法及代碼示例


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_replace() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。