str_ireplace()是PHP中的一个内置函数
此函数返回一个字符串或数组。
其中所有出现的 search
in subject
(忽略大小写)都替换为给定replace
值。如果您不需要正则替换规则,通常应该使用此函数而不是 preg_replace()和i修饰符。
此函数不区分大小写的方式执行搜索。
这个函数类似于str_replace()函数。不同之处在于str_replace()函数区分大小写,而str_ireplace()则不区分大小写。
语法:(PHP 5,PHP 7)
1 | str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) |
参数介绍:
第一种情况search和replace都是数组的情况
如果search
和replace
是数组,则str_ireplace()从每个数组中获取一个值并使用它们进行搜索和替换 subject
。
如果replace
值的个数小于search
数组值的个数,则将空字符串用于其余的替换值。否则repalce数组的个数大于search的数组的值,也将空字符串用于替换值
第二种情况search是数组repalce是字符串的情况
如果search
是一个数组并且replace
是一个字符串,那么这个替换字符串将用于每个值search
。但是反过来没有意义。
第三种情况search和repalce都是字符串的情况
如果都是字符串则不区分大小写找到了自接替换掉。
- $search :这个参数可以是字符串类型也可以是数组类型。此参数指定要搜索的字符串
- $replace:这个参数可以是字符串类型也可以是数组类型。此参数指定要替换的字符串。
- $subject:这个参数可以是字符串和数组类型。此参数指定我们希望被$search搜索并被$replace替换的字符串或字符串数组。
- $count:这个参数是可选的,如果传递,它的值将被设置为对字符串$subject执行的替换操作的总个数。
返回值:这个函数基于$subject参数返回一个被替换后的字符串或一个数组,如果没有搜索到则原样输出。
例子:
1 2 3 4 5 6 7 8 9 | Input : $subjectVal = "How ARE you", $searcVal = "are" $replaceVal = "is" str_ireplace($searchVal,$replaceVal,$subjectVal); Output : How is you Input : $subjectVal = "SKY8G are sky8g", $searcVal = "are" $replaceVal = "for" str_ireplace($searchVal,$replaceVal,$subjectVal); Output : SKY8G for sky8g |
下面的程序演示了PHP中的str_ireplace()函数:
程序1:这个程序显示str_ireplace()函数是不区分大小写的。
1 2 3 4 5 6 7 8 9 10 11 | <?php // Input string $subjectVal="welcome to my website"; // using str_ireplace() function $res = str_ireplace("My", "sky8g", $subjectVal); echo $res; ?> |
输出
1 | welcome to sky8g website |
程序2:$search和$replace都是数组的情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //第一种两个数组都是一一对应关系,搜索到了字符串 $search = ["Is"]; $replace = ["SKY8G"]; echo "<br/>".str_ireplace ( $search, $replace, "sky8g is google website"); //没有搜索到的情况 $search = ["Isa"]; $replace = ["SKY8G"]; echo "<br/>".str_ireplace ( $search, $replace, "sky8g is google website"); //两者的数组个数不同,search的数组个数少 $search = ["Is"]; $replace = ["SKY8G",520]; echo "<br/>".str_ireplace ( $search, $replace, "sky8g is google website"); //两者的数组个数不同,search的数组个数多 $search = ["Is","520"]; $replace = ["SKY8G"]; echo "<br/>".str_ireplace ( $search, $replace, "sky8g is google 520 website"); |
输出
1 2 3 4 | sky8g SKY8G google website sky8g is google website sky8g SKY8G google website sky8g SKY8G google website |
程序3:$search是数组$replace是字符串的情况
1 2 3 4 5 6 7 8 | $search = ["Is","520"]; $replace = "SKY8G"; echo "<br/>".str_ireplace ( $search, $replace, "sky8g is google 520 website"); //没有意义 $search = "Is"; $replace = ["SKY8G"]; echo "<br/>".str_ireplace ( $search, $replace, "sky8g is google 520 website"); |
输出
1 2 | sky8g SKY8G google SKY8G website sky8g Array google 520 website |
程序4:包含$count的值的时候的例子
1 2 3 4 5 6 | $subjectVal="welcome to my website"; $res = str_ireplace(["my","to","e"], ["sky8g"], $subjectVal, $count ); echo $res; echo "<br/>"; echo $count; |
输出
1 2 | wlcom sky8g wbsit 6 |
注:其中6表示搜索到的字符串被替换的个数。
参考
https://php.net/manual/en/function.str-ireplace.php