substr_replace与str_replace的区别

本文深入解析PHP中的字符串替换函数,包括substr_replace()和str_replace()的用法、参数及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP 字符串替换

用于从字符串中替换指定字符串。

相关函数如下:

substr_replace()

substr_replace() 函数用于把字符串的一部分替换为另一个字符串,返回混合类型。

语法:

mix substr_replace ( mixed string, string replacement, int start [, int length] )
参数说明如下:
参数 说明
string 要处理的字符串
replacement 要插入的字符串
start 字符串开始位置,起始位置为 0 ,为负则从字符串结尾的指定位置开始
length 可选,字符串返回的长度,默认是直到字符串的结尾,为负则从字符串末端返回

例子:

<?php
echo substr_replace('abcdef', '###', 1);	//输出 a###
echo substr_replace('abcdef', '###', 1, 2);	//输出 a###def
echo substr_replace('abcdef', '###', -3, 2);	//输出 abc###f
echo substr_replace('abcdef', '###', 1, -2);	//输出 a###ef 
?>

提示

如果 start 是负数且 length 小于等于 start ,则 length 为 0。

str_replace()

str_replace() 函数使用一个字符串替换字符串中的另一些字符,返回混合类型。

语法:

mixed str_replace( mixed search, mixed replace, mixed string [, int &count] )
参数说明如下:
参数 说明
search 要查找(被替换)的字符串
replace 要替换 search 的字符串
string 要处理的字符串
count 可选,一个对替换计数的变量

例子:

<?php
echo str_replace("world","earth","Hello world!");		//输出 Hello earth!
//替换多个,且第二个参数为空字符
echo str_replace("o","","Hello world!");			//输出 Hell wrld! 
//使用数组
$arr = array("e", "o");
$arr2 = array("x", "y");
echo str_replace($arr, $arr2, "Hello World of PHP", $i);	//输出 Hxlly Wyrld yf PHP 
echo $i;							//输出4  
?>

提示

  1. 该函数与 substr_replace() 不同之处是满足条件的都进行替换
  2. 该函数对大小写敏感。如需进行大小写不敏感的查找替换,请使用 str_ireplace()
PHP的内置函数 `substr_replace()` 用于替换字符串的一部分。它的参数如下: 1. `string $string`:原始字符串。 2. `mixed $replacement`:要替换的内容。可以是一个字符串或字符串数组,用于替换原始字符串中指定位置的字符。 3. `int $start`:起始位置索引,表示从哪个位置开始替换。如果是正数,则从字符串的左侧开始计数;如果是负数,则从字符串的右侧开始计数。 4. `int|null $length`:可选参数,表示要替换的长度。如果指定了长度,则替换从起始位置开始指定长度的字符。如果未指定长度,则会替换从起始位置到字符串末尾的所有字符。 5. `string|null $encoding`:可选参数,表示字符串的编码。默认为 `null`,表示使用内部编码。 函数返回一个新的字符串,其中被替换的部分已经被指定的内容替代。 下面是一些示例: ```php $str = "Hello, world!"; // 将字符串中的 "world" 替换为 "everyone" echo substr_replace($str, "everyone", 7, 5); // 输出: Hello, everyone! // 将字符串中索引位置2开始的3个字符替换为 "ABC" echo substr_replace($str, "ABC", 2, 3); // 输出: HeABC, world! // 将字符串中索引位置-6开始到末尾的字符替换为空字符串 echo substr_replace($str, "", -6); // 输出: Hello, // 指定字符串编码为UTF-8 echo substr_replace($str, "everyone", 7, 5, 'UTF-8'); // 输出: Hello, everyone! ``` 请注意,如果使用多字节字符编码(如UTF-8),需要确保字符串函数能正确处理多字节字符。在这种情况下,可以使用 `mb_substr_replace()` 函数来替代 `substr_replace()`,以确保正确处理多字节字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值