当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。