PHP String substr_replace() 函数

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) – 这是该函数的可选参数,指定要在字符串中替换多少个字符。如果在substr_replace()中没有传入$length参数,则替换会一直进行到字符串的末尾。对于该参数也有三种情况:

  • 如果$length的值是正数,则给定的长度的字符串将被新字符串替换。
  • 如果$length的值为负数,则在替换字符串后,字符的数量应该保留在末尾。
  • 如果$length为0,则插入操作将替换。

返回值

substr_replace()在替换完成后返回一个字符串。如果字符串是一个数组,则返回一个数组。

更新日志

从PHP 4.3.3开始,所有参数都接受数组。

示例

这里提供了一些示例,通过这些示例我们可以学习substr_replace()函数的实际应用。

示例1

<?php
    replace = substr_replace("Hello earth", "javatpoint", 6);
    echoreplace;
?>

输出:

在上面的示例中,替换从第6个位置开始。”earth” 被替换为 “javatpoint”。

Hello javatpoint

示例2

<?php
    //replacement from the front of string
    replace1 = substr_replace("Hello javatpoint", "PHP", 6);
    echoreplace1;
    //replacement from end of the string
    replace2 = substr_replace("Hello javatpoint", "PHP", -10);
    echoreplace2;
?>

输出:

在上面的示例中,替换从第一个情况的第6个位置开始。在第二个情况中,传递了一个负值,所以替换是从字符串的第10个位置在末尾进行的。

Hello PHP
Hello PHP

示例3

<?php
    replace = substr_replace("PHP!","Hello " , 0, 0);
    echoreplace;
?>

输出:

在上面的示例中,我们使用了第四个 $length 参数,其传递的值为0。因此,插入了字符串”Hello”而不是替换。

Hello PHP!

示例4

<?php
    replace = substr_replace("Welcome javatpoint","to " , 8, 0);
    echoreplace;
?>

输出:

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 timelength = 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()函数将数组转换为字符串。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程