详谈php中 strtr 和 str_replace 的效率问题

发布时间 - 2026-01-11 01:06:54    点击率:

在网上看了一些php优化的指南,里面提到:使用strtr 函数 比 str_replace快4倍。 本着探索的精神动手验证。

代码

$string = 'abcdefg';
set_time_limit(300);
 
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
  $str = str_replace('a', '123', $string);
}
 
echo microtime(true)-$start, '<br />';
 
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
  $str = strtr($string, ['a'=>'123']);
}
 
echo microtime(true)-$start, '<br />';

平台(笔记本):win10 + i5 + 8G固态

环境1:php 5.6 nts +apache

测试条件: 10000000次循环

结果:    str_replace :3.2446131706238 秒   
               strtr: 36.379708051682 秒 

环境2:php 7.0 nts +apache

测试条件: 10000000次循环

结果:    str_replace :9.3426380157471秒   
               strtr: 9.3660399913788秒 

环境3:php 5.6 nts + nginx

测试条件: 10000000次循环

结果:    str_replace :3.2784769535065 秒   
               strtr: 35.701732158661 秒 

环境4:php 7.0nts +nginx

测试条件: 10000000次循环

结果:    str_replace :9.5572259426117 秒   
               strtr: 9.4987349510193 秒 

意外发现, 5.6版本 str_replace  比 strtr 效率高10+倍,  7.0版本效率基本相同, 但5.6的 str_replace  竟比 7.0高 3倍

ps:以上测试,每个环境都测试了3+次,结果取平均值

以上这篇详谈php中 strtr 和 str_replace 的效率问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# php  # strtr  # str_replace  # php中替换字符串函数strtr()和str_repalce()的用法与区别  # 详解PHP字符串替换str_replace()函数四种用法  # PHP中strtr字符串替换用法详解  # 比较strtr  # str_replace和preg_replace三个函数的效率  # php字符串函数学习之strstr()  # php 中的str_replace 函数总结  # php函数之strtr和str_replace的用法详解以及效率分析  # 给大家  # 看了  # 希望能  # 这篇  # 小编  # 大家多多  # 均值  # 在网上  # 效率高  # abcdefg  # set_time_limit  # string  # class  # brush  # lt  # true  # start  # microtime  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高防服务器租用指南:配置选择与快速部署攻略  b2c电商网站制作流程,b2c水平综合的电商平台?  动图在线制作网站有哪些,滑动动图图集怎么做?  如何在新浪SAE免费搭建个人博客?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  ,南京靠谱的征婚网站?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何快速启动建站代理加盟业务?  详解Huffman编码算法之Java实现  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  如何用VPS主机快速搭建个人网站?  大连 网站制作,大连天途有线官网?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  利用vue写todolist单页应用  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何自定义分页视图?(Pagination示例)  js实现点击每个li节点,都弹出其文本值及修改  大学网站设计制作软件有哪些,如何将网站制作成自己app?  JavaScript常见的五种数组去重的方式  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  如何在云主机快速搭建网站站点?  python中快速进行多个字符替换的方法小结  在centOS 7安装mysql 5.7的详细教程  如何用IIS7快速搭建并优化网站站点?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Linux后台任务运行方法_nohup与&使用技巧【技巧】  利用JavaScript实现拖拽改变元素大小  简历没回改:利用AI润色让你的文字更专业  Laravel如何使用Blade组件和插槽?(Component代码示例)  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Python高阶函数应用_函数作为参数说明【指导】  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  千库网官网入口推荐 千库网设计创意平台入口  黑客入侵网站服务器的常见手法有哪些?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  js实现获取鼠标当前的位置  iOS UIView常见属性方法小结  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  晋江文学城电脑版官网 晋江文学城网页版直接进入  如何选择可靠的免备案建站服务器?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区