php中几个字符串替换函数的效率测试
sshong 发表于2013年9月7日 08:47:31 更新于2013年9月7日 08:47:31
测试了下php中几个字符串替换函数的效率,结论:
str_replace > strtr > preg_replace

测试代码如下:
$keywords = array('小王', '开车', '菲律宾', '放松', '一下', '要不要');
$str = "老李对小王说下班后开车去机场,要去菲律宾长滩岛,好好地放松休息一下,要不要一起去";
echo $str . '<br>';
echo str_replace($keywords, '***', $str) . '<br>';
echo strtr($str, array_fill_keys($keywords, '***')) . '<br>';

$keywords2 = array('/小王/', '/开车/', '/菲律宾/', '/放松/', '/一下/', '/要不要/');
echo preg_replace($keywords2, '***', $str) . '<br>';

$start = microtime(true);
for ($i=0; $i<100000; $i++) {
    str_replace($keywords, '***', $str);
}
echo 'str_repace:' . (microtime(true) - $start) . 's<br>';

$rep = array_fill_keys($keywords, '***');
$start = microtime(true);
for ($i=0; $i<100000; $i++) {
    strtr($str, $rep);
}
echo 'strtr:' . (microtime(true) - $start) . 's<br>';

$start = microtime(true);
for ($i=0; $i<100000; $i++) {
    preg_replace($keywords2, '***', $str);
}
echo 'preg_replace:' . (microtime(true) - $start) . 's<br>';

结果如下:
老李对小王说下班后开车去机场,要去菲律宾长滩岛,好好地放松休息一下,要不要一起去
老李对***说下班后***去机场,要去***长滩岛,好好地***休息***,***一起去
老李对***说下班后***去机场,要去***长滩岛,好好地***休息***,***一起去
老李对***说下班后***去机场,要去***长滩岛,好好地***休息***,***一起去
str_repace:0.48921489715576s
strtr:0.67480778694153s
preg_replace:1.1006908416748s
标签:无分类:PHP阅读:3060
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅