分享编程~
 
php字符串替换函数 strtr(),str_replace(),substr_replace(),preg_replace()之间区别和性能

php字符串替换函数strtr(),str_replace(),substr_replace(),preg_replace()介绍

strtr() 

定义:转换字符串中特定的字符。

返回值:返回已转换的字符,如果 array 参数包含一个空字符串("")的键名,则将返回 FALSE。

语法:strtr(string,from,to)或者strtr(string,array)。

string(必):规定要转换的字符串。

from(必):(除非使用数组)。规定要改变的字符。

to(必):(除非使用数组)。规定要改变为的字符。

array(必):(除非使用 from 和 to)。数组,其中的键名是更改的原始字符,键值是更改的目标字符。

示例1:strtr("Hilla Warld","ia","eo"); //把字符串中的字符 "ia" 替换为 "eo";输出“Hello World”。

示例2:$arr = array("Hello" => "Hi", "world" => "earth");echo strtr("Hello world",$arr);

注释:如果 from 和 to 参数的长度不同,则会被格式化为最短的长度,中文支持不好。


str_replace()

定义:以其他字符替换字符串中的一些字符(区分大小写)。

返回值:返回带有替换值的字符串或数组。

语法:str_replace(find,replace,string,count)

find(必):规定要查找的值。

replace(必):规定替换 find 中的值的值。

string(必):规定被搜索的字符串。

count(选):对替换数进行计数的变量。

示例1:

<?php
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "替换数:$i";
//Array ( [0] => blue [1] => pink [2] => green [3] => yellow ) 替换数:1
?>

示例2:

<?php
$find = array("Hello","world");
$replace = array("B");
$arr = array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
//Array ( [0] => B [1] => [2] => ! )
?>

规则:

1、如果搜索的字符串是数组,那么它将返回数组。

2、如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。

3、如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换

4、如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用。

注释:该函数是二进制安全的,该函数区分大小写。str_ireplace() 函数执行不区分大小写。

相关:str_ireplace不区分大小写


substr_replace()

定义:把字符串的一部分替换为另一个字符串。

返回值:返回被替换的字符串。如果 string 是数组,则返回数组。

语法:substr_replace(string,replacement,start,length)

string(必):规定要检查的字符串。

replacement (必):规定要插入的字符串。

start(必):规定在字符串的何处开始替换。正数在字符串中的指定位置开始替换,负数在从字符串结尾的指定位置开始替换

length(必):规定要替换多少个字符。默认是与字符串长度相同。正数被替换的字符串长度,负数表示待替换的子字符串结尾处距离string 末端的字符个数,0插入而非替换

注释:如果 start 参数是负数且 length 小于或者等于 start,则 length 为 0。

示例1:echo substr_replace("Hello world","Shanghai",6);  // Hello Shanghai

示例2:echo substr_replace("I love Shanghai Shanghai!",'abc',0,6) ;  // abc Shanghai Shanghai!


preg_replace()

定义:函数执行一个正则表达式的搜索和替换。

语法:preg_replace (string, replace, find, limit, count)

string(必):要搜索的模式,可以是字符串或一个字符串数组。

replace(必):用于替换的字符串或字符串数组。

find(必): 要搜索替换的目标字符串或字符串数组。

limit(选):对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。

count(选):为替换执行的次数。

示例1:

<?php
$string = 'google 123, 456';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = 'runoob ${2},$3';
echo preg_replace($pattern, $replacement, $string);
?>
// runoob 123,456

示例2(删除空格字符):

示例2(删除空格字符):
<?php
$str = 'runo o   b';
$str = preg_replace('/\s+/', '', $str);
// 将会改变为'runoob'
echo $str;
?>
//runoob


性能从高到低:

strtr() ,str_replace(),substr_replace(),preg_replace()


上一篇:js中json对象与json字符串互转几种方式下一篇:php字符串查找函数strpos(),strrchr(),strstr()之间区别和性能
赞(0) 踩(0)
您说多少就多少,您的支持是我最大的动力
赏金
微 信
赏金
支付宝