substr_replace() 是 PHP 中的字符串操作函数,用于替换字符串的子串。

说明

substr_replace(
    mixed $string,
    mixed $replacement,
    mixed $start,
    mixed $length = ?
): mixed

substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。

参数

string输入字符串。也可以提供字符串数组,在这种情况下,将依次替换每个字符串。

replacement替换字符串。

start替换开始的位置。

  • 如果 start 为正数,替换将从 string 的 start 位置开始。
  • 如果 start 为负数,替换将从 string 的倒数第 start 个位置开始。

length要替换的长度。

如果设定了这个参数并且为正数,表示 string 中被替换的子字符串的长度。如果设定为负数,它表示待替换的子字符串结尾处距离 string 末端的字符个数。如果没有提供此参数,那么它默认为 strlen( string ) (字符串的长度)。当然,如果 length 为 0,那么这个函数的功能为将 replacement 插入到 string 的 start 位置处。

返回值

返回结果字符串。如果 string 是个数组,那么也将返回一个数组。

范例

示例 #1 substr_replace() 范例

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

/* 这两个例子使用 “bob” 替换整个 $var。*/
echo substr_replace($var, 'bob', 0) . "<br />n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />n";

/* 将 “bob” 插入到 $var 的开头处。*/
echo substr_replace($var, 'bob', 0, 0) . "<br />n";

/* 下面两个例子使用 “bob” 替换 $var 中的 “MNRPQR”。*/
echo substr_replace($var, 'bob', 10, -1) . "<br />n";
echo substr_replace($var, 'bob', -7, -1) . "<br />n";

/* 从 $var 中删除 “MNRPQR”。*/
echo substr_replace($var, '', 10, -1) . "<br />n";
?>

示例 #2 使用substr_replace()一次替换多个字符串

<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');

// A simple case: replace XXX in each string with YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."n";

// A more complicated case where each replacement is different.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."n";

// Replace a different number of characters each time.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."n";
?>

以上例程会输出:

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

注释

注意: 此函数可安全用于二进制对象。

https://www.php.net/manual/zh/function.substr-replace