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 表单提交-POST 异常的问题 2023-03-02
- php5.3/5.4/5.5/5.6/7常见新增特性汇总整理 2023-04-01
- PHP数组对象与Json转换操作实例分析 2023-03-07
- PHP数组访问常用方法解析 2023-04-25
- laravel 实现划分admin和home 模块分组 2023-03-02
- PHP PDOStatement::fetchObject讲解 2022-12-15
- 基于Laravel(5.4版本)的基本增删改查操作方法 2023-02-22
- PHP实现链表的定义与反转功能示例 2022-10-27
- 实例讲解PHP表单处理 2022-12-22
- PHP7标量类型declare用法实例分析 2023-12-27