str_replace 函数用于替换字符串中的某些字符。它可以用于一个或多个字符的替换,也可以用于数组和字符串的替换。
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的用法详解以及效率分析 原创
- laravel接管Dingo-api和默认的错误处理方式 2023-03-12
- Linux下安装Memcached服务器和客户端与PHP使用示例 2023-01-08
- Yii2压缩PHP中模板代码的输出问题 2022-11-13
- php使用QueryList轻松采集js动态渲染页面方法 2022-11-14
- 如何在PHP中生成随机数 2023-04-20
- PHP命名空间简单用法示例 2022-12-01
- 浅谈PHP SHA1withRSA加密生成签名及验签 2022-12-30
- PHP dirname功能及原理实例解析 2023-05-02
- 学习php设计模式 php实现单例模式(singleton) 2023-12-13
- 介绍几个array库的新函数 php 2024-01-02