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