PHP函数之strtr和str_replace的用法详解以及效率分析
str_replace
str_replace
函数用于替换字符串中的某些字符。它可以用于一个或多个字符的替换,也可以用于数组和字符串的替换。
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
其中,$search
代表要替换的字符,可以是字符串或数组;$replace
代表替换字符,可以是字符串或数组;$subject
是被替换的字符串;$count
返回被替换的次数。
代码示例:
$str = "Hello World!";
echo str_replace("World", "PHP", $str);
输出结果:
Hello PHP!
strtr
strtr
函数用于在字符串中替换字符,如果 search
参数是一个字符串的话,那么就会将 search
中的每一个字符都替换成 replace
中对应位置的字符。
string strtr ( string $str , string $from , string $to )
其中,$str
是被替换的字符串;$from
定义要替换的字符或字符数组,或是从这些字符中搜寻与 $str
相符的一个字符;$to
定义替换 $from 中字符的字符数组,或是替换字符。
代码示例:
$str = "Hello World!";
echo strtr($str, "eo", "12");
输出结果:
H1ll2 W1rld!
比较
-
str_replace
函数将字符串中的子串或字符替换成指定的内容,而strtr
函数根据传入的部分字符映射表进行字符替换。 -
str_replace
可以使用正则表达式进行匹配,对于替换较复杂的字符串可以使用str_replace
取代strtr
。
在大多数情况下, str_replace
的效率要优于 strtr
。如果你不需要字符映射表的特殊功能,则应选择使用 str_replace
。
效率对比代码示例:
$start = microtime(true);
$str = "Hello World!";
for ($i=0; $i<1000000; $i++) {
str_replace("World", "PHP", $str);
}
echo (microtime(true) - $start) . "\n"; //输出运行时间
$start = microtime(true);
$str = "Hello World!";
for ($i=0; $i<1000000; $i++) {
strtr($str, "eo", "12");
}
echo (microtime(true) - $start) . "\n"; //输出运行时间
输出结果:
3.7138488292694
7.3168301582336
可以看到, str_replace
的效率比 strtr
高一倍以上。
总结
对于简单的字符串替换,可以使用 str_replace
函数;对于有复杂的字符串映射需求,使用 strtr
函数。在性能较为敏感的环境下,应使用 str_replace
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php函数之strtr和str_replace的用法详解以及效率分析 原创 - Python技术站